我正在写这样的代表。
delegate void MyMethod(string arg1, string arg2);
MyMethod mm;
我不知道为什么需要两行来声明一个委托。如果我的班级有20名代表,我需要编写40行代码。 任何人都可以告诉我在一行代码中写这个吗? 在此先感谢。
答案 0 :(得分:10)
你在这里宣布两件截然不同的事情:
MyMethod
理解差异很重要,因为当你真正想要声明一个新的委托类型时,以及只是想要声明一个现有委托的字段时,你可以解决这个问题。类型。如果您的班级有20个代表字段,那么您几乎肯定不想为每个字段声明一个新类型。如果他们拥有相同的签名,您可以使用单一类型......或者更好,只需使用其中一种框架类型,例如Action<...>
或Func<...>
。
Action<string, string> mm;
(Action
个void
个返回类型的Func
个代表,以及非void
个返回类型的{{1}}个代表,参数数量不同,一般都是表达的。在MSDN获取更多详细信息。)