C#,为代理分配操作

时间:2014-04-09 22:12:35

标签: c# delegates type-conversion action

我了解ActionDelegate,但我收到以下编译时错误,尝试将Action分配给Delegate

  

无法将类型'System.Action'隐式转换为'ADelegate'

public delegate void ADelegate();
Action act = () => Console.WriteLine ("test");
ADelegate del = act;

如何将act分配给del

2 个答案:

答案 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");