编写委托时不要弄乱代码

本文关键字:代码 | 更新日期: 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代表,参数个数不同,均泛型表示。