在阅读一本名为“在C#中编程”的书时,我遇到了一种我无法理解的语法:
public static void Main(string[] args)
{
new Thread( () =>
{
for(int x = 0; x < 10; x++)
{
_field++;
Console.WriteLine("Thread A : {0}", _field);
}
}).Start();
}
“()=&gt;”是指什么,以及调用什么构造函数?我试着谷歌但是“()=&gt;”有点难以搜索谷歌。
答案 0 :(得分:1)
这是一个lambda表达式,请参阅here了解文档。
更具体地说,它是一个匿名函数。 Thread
构造函数需要一个在线程启动时调用的函数。不是创建一个重用函数(void ThreadFunc() { ... }
),而是在线声明一个匿名函数。
答案 1 :(得分:0)
我不知道C#,但这看起来像一个匿名函数。也就是说,一旦在单独的线程上调用start,Thread对象就会运行这个函数。
编辑:它被称为匿名,因为它没有名称,也是()=&gt; {}是'arguments'=&gt; “欢乐的身体
答案 2 :(得分:0)
() => ...
只是意味着它是不带参数的lambda表达式。它与以下相同
没有参数:
void MyWork() // This is your class constructor
{
for(int x = 0; x < 10; x++)
{
_field++;
Console.WriteLine("Thread A : {0}", _field);
}
}
new Thread(MyWork).Start();
使用参数:
void MyWork(int _number) // This is your class constructor
{
for(int x = 0; x < _number; x++)
{
_field++;
Console.WriteLine("Thread A : {0}", _field);
}
}
new Thread(() => MyWork(10)).Start();