编写代表而不会弄乱代码

时间:2014-06-23 06:09:24

标签: c# delegates

我正在写这样的代表。

  delegate void MyMethod(string arg1, string arg2);
  MyMethod mm;

我不知道为什么需要两行来声明一个委托。如果我的班级有20名代表,我需要编写40行代码。 任何人都可以告诉我在一行代码中写这个吗? 在此先感谢。

1 个答案:

答案 0 :(得分:10)

你在这里宣布两件截然不同的事情:

  • 第一行声明一个名为MyMethod
  • 的委托类型
  • 第二行声明该委托类型的字段

理解差异很重要,因为当你真正想要声明一个新的委托类型时,以及只是想要声明一个现有委托的字段时,你可以解决这个问题。类型。如果您的班级有20个代表字段,那么您几乎肯定不想为每个字段声明一个新类型。如果他们拥有相同的签名,您可以使用单一类型......或者更好,只需使用其中一种框架类型,例如Action<...>Func<...>

Action<string, string> mm;

Actionvoid个返回类型的Func个代表,以及非void个返回类型的{{1}}个代表,参数数量不同,一般都是表达的。在MSDN获取更多详细信息。)