我不确定,但是当你在一行中完成所有内容时它会被称为内联吗?
我的代码我有这个BackgroundWorker。 DoWorker强制执行一秒休眠,RunWorkerCompleted只执行一些代码。是否可以代替定义一个函数,在一行中完成所有操作,如
.DoWork += ((sender, arg) => { ... });
和
.RunWorkerCompleted += ((sender, arg...
这个的正确语法是什么,这叫做什么?当你手头有一个简单的任务时,保持简单是很好的: - )
答案 0 :(得分:1)
您将inlining
与lambda expressions
混淆。
Inlining正在取代方法调用方法,例如:
int TimesTwo(int x)
{
return x * 2;
}
//before inlining:
int a = TimesTwo(6) + TimesTwo(7);
//after inlining:
int a = 6 * 2 + 7 * 2;
这是一种编译器优化技术,可以避免方法调用开销。
对于您的BackgroundWorker
示例,正确的语法是:
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += (sender, e) => RunMyMethod();
//or
worker.DoWork += (sender, e) => { RunMyMethod(); }
有关详细信息,请参阅MSDN。