在C#中使用Delegate的推荐方法

时间:2016-02-04 03:27:03

标签: c# delegates

如果委托只是方法的引用点,那么我认为我不应该以对象方式使用委托(创建委托类型的实例)。

这是第一个片段:

public delegate void Del1(string message);
public class Test
{
  public static void Method1(string message)
  {
     System.Console.WriteLine(message);
  }
}
Test test new Test();
del1 handler=new del1(Test.Method1);
handler("Hello world!");

这是第二个片段:

public delegate void Del2(string message);
public static void Method2(string message)
{
    System.Console.WriteLine(message);
}
Del2 handler = Method2;
handler("Hello World");

第一种方式对我来说更为一般。

第二种方式不必创建实例,只是因为它委托的方法是静态的吗?

如果是,哪一个在概念上更为通用?

1 个答案:

答案 0 :(得分:3)

两个代码段都是相同的。第二个是仅允许编译器自动推断方法组的委托类型,而不是显式提供它。在这两种情况下,您都要创建一个委托实例。