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
}