C# 3.0 什么是()=>;平均值(c#3.0)

C# 3.0 什么是()=>;平均值(c#3.0),c#-3.0,C# 3.0,可能重复: 大家好 这是我在stackoverflow中的第一个问题 我遇到过这样的事情 () => SomeClass.SomeMethod(param1, param2) 这对我来说是全新的,我无法理解它是什么,我们叫它什么,它做什么 它是如何工作的等等 我要找的是一个简单的例子,可以是相同的解释 易于理解,我可以在我的程序中实现它。如果我能得到那就好了 此实现的实时场景 我正在使用C#3.0和dotnet framework 3.5 非常感谢。我想这是一个lambda函数。它是您

可能重复:

大家好

这是我在stackoverflow中的第一个问题

我遇到过这样的事情

() => SomeClass.SomeMethod(param1, param2)
这对我来说是全新的,我无法理解它是什么,我们叫它什么,它做什么

它是如何工作的等等

我要找的是一个简单的例子,可以是相同的解释

易于理解,我可以在我的程序中实现它。如果我能得到那就好了

此实现的实时场景

我正在使用C#3.0和dotnet framework 3.5


非常感谢。我想这是一个lambda函数。它是您定义的“内联”函数类型

例如,在LINQ中,可以执行以下操作:

myTable.Where(eleme=>elem.qty>=10);
这里您将函数
leme=>elem.qty>=10
作为参数传递给Where方法

我猜在您的示例中,
()=>SomeClass.SomeMethod(param1,param2)
指的是一个不带输入参数但返回某个值的函数。

在语法上非常有用

是的,
()=>GetSomething()
是一个表达式lambda,它不接受任何参数并返回一些内容。另一个lambda风格是语句lambda,它是一个不返回任何内容的匿名函数,即
void
函数


两者都可以接受任意数量的参数,包括none。

这是一个创建动作委托的lambda。 更多信息(和示例)

您还可以使用
(s)=>SomeMethod创建一个动作并传入参数

或者,您可以传递整个块:

(x) => {
   DoSomething(x);
   if(x.SomeValue == requiredValue){
      x.SomeOtherValue = true;
   }
}

有关将参数传递给
操作的更多示例,请参见

看起来您正在寻找与此家伙相同的答案->