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");
    }
}