如果委托只是方法的引用点,那么我认为我不应该以对象方式使用委托(创建委托类型的实例)。
这是第一个片段:
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");
第一种方式对我来说更为一般。
第二种方式不必创建实例,只是因为它委托的方法是静态的吗?
如果是,哪一个在概念上更为通用?
答案 0 :(得分:3)
两个代码段都是相同的。第二个是仅允许编译器自动推断方法组的委托类型,而不是显式提供它。在这两种情况下,您都要创建一个委托实例。