ThreadStart myDelegate = new ThreadStart(printer.Print0);
// C#2 add this sugar syntax, but it's same instruction that below
ThreadStart myDelegate = printer.Print0;
则以下语法是等效的:
Thread thread = new Thread(new ThreadStart(printer.Print0));
Thread thread2 = new Thread(printer.Print0);
1条答案
按热度按时间y1aodyip1#
类
System.Threading.Thread
具有以下构造函数:为什么
System.Threading.ThreadStart start
是delegate:示例化委托的语法为:
则以下语法是等效的:
只有第二个在C#2中使用了sugar语法add。
在C#3中,lambda被添加到语言中,并以一种新的方式声明委托:
这就像:
不完全像第一个例子,因为从技术上讲它调用了一个中间方法。但是唯一的区别是调用堆栈...我认为这个语法相似。
您的评论中的问题:
使用显式调用和lambda表达式有什么好处吗?
不,只是语法不同。你可以选择你喜欢的,不用考虑其他。