为什么我使用 lambda 表达式而不是函数?
Why do I use lambda expressions instead of functions?
我有一个非常简单的问题。
我想尝试异步编程,但由于我无法全神贯注于 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 表达式。
所以团队合作用处不大?
我想发表一些意见,也许我的处理方式不对。
谢谢!
那不是 lambda。那是一个表达式体method/member。这只是另一个shorthand。
首先我想纠正一下:
use lambda expressions instead of functions
正如丹尼尔在他的回答中指出的那样,您在示例中展示的只是 an expression bodied member。
在方法之上使用表达式不是标准,而是 C# 语言支持的更多功能,因此何时使用和不使用由您决定。
对于适合监视器的简短方法体,我总是使用表达式体成员而不是方法,但这是基于主要意见的答案。
其次,对于 return y.Length > x ? true:false;
部分,我将通过示例对其进行扩展。如果将 y.Length > x
的值保存到一个变量中,它看起来像这样:
bool condition = y.Length > x;
然后 return 看起来像这样:
return condition ? true : false;
现在你会发现直接return条件更直观。
return condition;
我有一个非常简单的问题。
我想尝试异步编程,但由于我无法全神贯注于 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 表达式。
所以团队合作用处不大?
我想发表一些意见,也许我的处理方式不对。
谢谢!
那不是 lambda。那是一个表达式体method/member。这只是另一个shorthand。
首先我想纠正一下:
use lambda expressions instead of functions
正如丹尼尔在他的回答中指出的那样,您在示例中展示的只是 an expression bodied member。
在方法之上使用表达式不是标准,而是 C# 语言支持的更多功能,因此何时使用和不使用由您决定。
对于适合监视器的简短方法体,我总是使用表达式体成员而不是方法,但这是基于主要意见的答案。
其次,对于 return y.Length > x ? true:false;
部分,我将通过示例对其进行扩展。如果将 y.Length > x
的值保存到一个变量中,它看起来像这样:
bool condition = y.Length > x;
然后 return 看起来像这样:
return condition ? true : false;
现在你会发现直接return条件更直观。
return condition;