2016-03-15 195 views
0

我碰到一个lambda语法,这是我无法跟踪lambda语法看起来像这样:()=>

Action act =() => object.Foo(null); 

如何来解释来的?我知道如何使用lambda表达式,但这个对我来说不是很清楚。

+0

该代码与您的标题不符。在你的头衔中,你有倒退。 – BoltClock

+1

什么部分具体不清楚给你? – CodeCaster

+1

如果你不认为这是重复的,请添加更多关于“我知道如何使用lambda表达式”的解释,但是这个对我来说不是很清楚。 - 我们*怎么打算知道这个问题的哪些方面会让你感到困惑,而不是你显然理解得很好的其他例子。 –

回答

4

这是一个没有任何参数的lambda表达式。你会使用这样的:

act(); 

如果它有参数,例如:

Action act = x => object.Foo(x); 

然后你会使用这样的:

act(2); 
0
Action act =() => object.Foo(null); 

是相当于(不一样)

private void act(){ object.Foo(null); } 

其中act是您调用内联而不是在您的类中定义它的方法。

Action是一个不返回结果的委托。还有一个叫做Func的类似类型,它返回结果。

+0

不完全。除了你错过虚空的事实之外,尽管他们可能有相同的行为,但它们并不是基本相同的东西。附: - 不是我投票的人。 – series0ne

+1

@ series0ne - 我应该使用同等的,更好的verbage。不,它们不一样,但它确实降低了对那个Action是一个可以执行的方法(Delegate)。我修改了我的描述。 – Igor

+0

我会根据你的编辑投票,但行为不是匿名的......它被称为“行为” – series0ne

相关问题