c#主體表達式=>
在 C# 中,主體表達式(Expression-bodied members)是一種簡化代碼書寫的方式,它允許你以更簡潔的語法來定義成員(如方法、屬性、構造函數等)。這種語法在 C# 6.0 中首次引入,并在之后的版本中得到了擴展和改進。
基本用法
1. 簡單方法
在 C# 6.0 及之后版本中,可以使用 => 語法來簡化只有單行返回語句的方法。例如:
public int Add(int a, int b) => a + b;
這是對以下傳統方法定義的簡化:
public int Add(int a, int b)
{
return a + b;
}
2. 屬性
對于只包含 getter 或 setter 的屬性,也可以使用 => 來簡化:
public int Age { get; } = 30;
public string Name => "John Doe";
這里,Age 屬性使用了簡化的屬性初始化語法,而 Name 屬性使用了表達式主體語法。
3. 構造函數
C# 7.0 引入了構造函數的表達式主體語法,用于簡化構造函數的書寫:
public Person(string name) => Name = name;
這與傳統的構造函數寫法相對應:
public Person(string name)
{
Name = name;
}
4. 異常處理
如果你希望在 try 塊中簡化錯誤處理,表達式主體并不適用。不過你可以將異常處理邏輯寫在常規方法中,使用表達式主體語法的主要目的是為了簡化簡單的邏輯或返回值。
擴展
在 C# 7.0 之后,主體表達式語法擴展到了其他類型的成員:
- Indexers:可以使用表達式主體來簡化屬性訪問器。
- Finalizers:雖然不常見,但也是可以使用表達式主體的。
總結
主體表達式使得代碼更加簡潔易讀,特別是在需要定義小型、簡單邏輯的成員時。它讓代碼風格更加一致,并且減少了冗余代碼。然而,對于復雜的邏輯,傳統的完整方法定義還是更合適的選擇。
舉例:
private ObservableCollection<string> LogContentTemp => new ObservableCollection<string>();
等價于:
private ObservableCollection<string> LogContentTemp
{
get
{
return new ObservableCollection<string>();
}
}
本質:一個方法。

浙公網安備 33010602011771號