我什么时候应该使用C#3.0附带的lambda表达式?

ACP*_*ACP 7 c# lambda c#-3.0

海家伙,

我的开发人员今天早上正在讨论lambda表达式.所以我决定在这里问它

  • 我什么时候应该使用C#3.0附带的lambda表达式?

Ars*_*yan 5

lambda表达式是一个匿名函数,可以包含表达式和语句,并可用于创建委托或表达式树类型.

期望使用

del myDelegate = delegate(int x){return x*x; };
int j = myDelegate(5); //j = 25
Run Code Online (Sandbox Code Playgroud)

你可以写

del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
Run Code Online (Sandbox Code Playgroud)


Fre*_*örk 2

我认为没有什么时候应该使用它们的一般规则,但如果我自己观察,我倾向于在使用匿名方法时使用它们。大多数情况下,当使用以下命令在新线程中生成一些代码时,会发生这种情况ThreadPool大多数情况下,当使用或在执行 LINQ 查询时

线程池示例:

ThreadPool.QueueUserWorkItem(state => {
    // the code to run on separate thread goes here
});
Run Code Online (Sandbox Code Playgroud)

链接:

var myItems = GetSomeIEnumerable()
                  .Where(o => o.SomeProperty.Equals("some value"));
                  .OrderBy(o => o.SomeOtherProperty);
Run Code Online (Sandbox Code Playgroud)