[英]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.