为什么我使用lambda表达式而不是函数?

时间:2019-02-15 14:13:41

标签: c# lambda c#-6.0

我有一个非常简单的问题。

我想尝试异步编程,因为我无法绕过lambda表达式,所以决定从那里开始。

为什么要使用此示例:

bool IsLonger(int x, string y) => y.Length > x;

为此:

private bool IsLonger(int x, string y)
{
    return y.Length > x ? true:false;
}

如果您不能使用:

/// <summary>
/// Return positive if inteager is higher number than string length
/// </summary>
/// <param name="x">X is our inteager</param>
/// <param name="y">Y is our string</param>
/// <returns></returns>

带有lambda表达式。
因此,如果您与团队一起工作并没有太大用处?

我想发表一些意见,也许我用错误的方式。
谢谢!

2 个答案:

答案 0 :(得分:0)

那不是lambda。那是一个表达力强的方法/成员。这只是另一个的简写。

答案 1 :(得分:0)

首先,我要更正此问题:

  

使用lambda表达式代替函数

正如丹尼尔在回答中所指出的,您在示例中显示的只是an expression bodied member

使用结合在方法上的表达式不是标准的,而是C#语言支持的更多功能,因此取决于您是否要使用它。

对于适合监视器的短方法主体,我将始终使用表达式主体成员而不是方法,但这将基于主要观点。

第二,对于return y.Length > x ? true:false;部分,我将通过一个示例进行扩展。如果将y.Length > x的值保存在一个变量中,它将看起来像这样:

bool condition = y.Length > x;

,然后返回的内容如下:

return condition ? true : false;

现在您将看到直接返回条件更加直观。

return condition;