C# 在C中使用委托的推荐方法#

C# 在C中使用委托的推荐方法#,c#,delegates,C#,Delegates,如果委托只是方法的引用点,那么我认为不应该以对象方式使用委托(创建委托类型的实例) 这是第一个片段: public delegate void Del1(string message); public class Test { public static void Method1(string message) { System.Console.WriteLine(message); } } 这是第二个片段: public delegate void Del2(strin

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

这是第一个片段:

public delegate void Del1(string message);
public class Test
{
  public static void Method1(string message)
  {
     System.Console.WriteLine(message);
  }
}
这是第二个片段:

public delegate void Del2(string message);
public static void Method2(string message)
{
    System.Console.WriteLine(message);
}
第一种方法对我来说更一般

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


如果是,在概念上哪一个更一般?

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

谢谢,但实例是什么时候创建的?我什么时候给它分配地址@葛厚德 不,您必须先创建一个实例,然后才能将其分配给变量。因此,我将获得两个实例,一个是委托实例,另一个是委托实例?但第二个代码段似乎不需要委托类型的实例@葛厚德 您将创建委托的一个实例,并将对该委托的引用分配给变量。如果您认为第二个代码段没有创建委托,那么您需要再次阅读答案。
public delegate void Del2(string message);
public static void Method2(string message)
{
    System.Console.WriteLine(message);
}
Del2 handler = Method2;
handler("Hello World");