编写委托时不要弄乱代码
本文关键字:代码 | 更新日期: 2023-09-27 18:09:45
我是这样写委托的。
delegate void MyMethod(string arg1, string arg2);
MyMethod mm;
我不知道为什么需要两行来声明一个委托。如果我的类有20个委托,我需要编写40行代码。谁能告诉我用一行代码写这个的方法?
你在这里声明了两个非常不同的东西:
- 第一行声明了一个委托类型称为
MyMethod
第二行声明了一个委托类型为的字段理解它们的区别是很重要的,因为这样你就可以知道什么时候你真的想要声明一个新的委托类型,什么时候你只是想要声明一个现有委托类型的字段。如果您的类有20个委托字段,您几乎肯定不希望为每个字段声明一个新类型。如果他们有相同的签名,你可以使用单一类型…或者更好的是,只使用一个框架类型,如Action<...>
或Func<...>
。
Action<string, string> mm;
(void
返回类型有Action
代表,非void
返回类型有Func
代表,参数个数不同,均泛型表示。