我了解Action
是Delegate
,但我收到以下编译时错误,尝试将Action
分配给Delegate
。
无法将类型'System.Action'隐式转换为'ADelegate'
public delegate void ADelegate();
Action act = () => Console.WriteLine ("test");
ADelegate del = act;
如何将act
分配给del
?
答案 0 :(得分:5)
C#不支持在委托类型之间进行转换或转换。
尝试像这样创建一个新的ADelegate
:
Action act = () => Console.WriteLine ("test");
ADelegate del = new ADelegate(act);
或者:
Action act = () => Console.WriteLine ("test");
ADelegate del = act.Invoke;
答案 1 :(得分:2)
你能不能这样做吗?
public delegate void ADelegate();
ADelegate del = () => Console.WriteLine("test");