C# 将方法指定给委托对象的两种方法有什么区别

C# 将方法指定给委托对象的两种方法有什么区别,c#,C#,考虑一下这个片段: public delegate void PrintSomeText(string); 我们有以下方法: public void ShowText(string s) { Console.WriteLine(s); } 将ShowText方法分配给下面的printObj的两种方法之间有什么区别 static void Main() { PrintSomeText printObj; /* ... */ printObj = new PrintSom

考虑一下这个片段:

public delegate void PrintSomeText(string);
我们有以下方法:

public void ShowText(string s) { Console.WriteLine(s); }
ShowText
方法分配给下面的
printObj
的两种方法之间有什么区别

static void Main()
{
    PrintSomeText printObj;
    /* ... */
    printObj = new PrintSomeText(ShowText); // The first way
}
vs:


实际上,它们根本没有什么不同。在C#2.0中引入的第二种方法更加简洁


有关更多信息,请查看“无差异”。从.NET 2.0/VS2005开始,C#编译器添加了一项改进,根据赋值的左侧自动推断委托的类型,并隐式地向编译代码添加了
new PrintSomeText
调用。编译后,它们是相同的

static void Main()
{
    PrintSomeText printObj;
    /* ... */
    printObj = ShowText; // The second way
}