C# 铸造后的委托平等
我正在尝试将C# 铸造后的委托平等,c#,.net,delegates,C#,.net,Delegates,我正在尝试将WaitCallBack转换为操作 我是这样做的: WaitCallBack w1 = Foo; Action<object> a1 = new Action<object>(w1); Action<object> a2 = Foo; waitcallbackw1=Foo; 动作a1=新动作(w1); 行动a2=Foo; 但是,当我尝试将a1与a2进行比较时,它将返回false 有没有办法抛弃这些代表,这样平等就会成为现实 谢谢。学员按方法+
WaitCallBack
转换为操作
我是这样做的:
WaitCallBack w1 = Foo;
Action<object> a1 = new Action<object>(w1);
Action<object> a2 = Foo;
waitcallbackw1=Foo;
动作a1=新动作(w1);
行动a2=Foo;
但是,当我尝试将a1
与a2
进行比较时,它将返回false
有没有办法抛弃这些代表,这样平等就会成为现实
谢谢。学员按方法+目标进行比较;问题是你在比较不同的东西 如果我们将这一行扩展到编译器看到的内容,可能会更清楚:
Action<object> a1 = new Action<object>(w1);
与另一个相比:
Action<object> a2 = Foo;
学员按方法+目标进行比较;问题是你在比较不同的东西 如果我们将这一行扩展到编译器看到的内容,可能会更清楚:
Action<object> a1 = new Action<object>(w1);
与另一个相比:
Action<object> a2 = Foo;
你不是在选代表;您正在包装它。您没有铸造代表;你在包装它。
Delegate del = a1.Target as Delegate;
if(del != null)
{
if(del.Method == a2.Method && del.Target == a2.Target)
{
Console.WriteLine("pass");
}
}