[英]Expression-bodied members vs Lambda expressions
lambda 表达式是被视为对象的代码块(表达式或语句块)。 它可以作为参数传递给方法,也可以通过方法调用返回。
(input parameters) => expression
SomeFunction(x => x * x);
看着这个语句,我想知道使用 lambdas 和使用 Expression-bodied 时有什么区别?
public string Name => First + " " + Last;
表达式体语法实际上只是属性和(命名)方法的较短语法,没有特殊含义。 特别是,它与 lambda 表达式无关。
这两行是完全等价的:
public string Name => First + " " + Last;
public string Name { get { return First + " " + Last; } }
您还可以编写表达式主体的方法(注意与您的 lambda 表达式执行相同操作的区别。在这里您指定返回类型和名称):
public int Square (int x) => x * x;
代替
public int Square (int x)
{
return x * x;
}
您还可以使用它来编写 getter 和 setter
private string _name;
public Name
{
get => _name;
set => _name = value;
}
对于构造函数(假设一个名为Person
的类):
public Person(string name) => _name = name;
使用元组语法,您甚至可以分配多个参数
public Person(string first, string last) => (_first, _last) = (first, last);
这也适用于分配给属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.