クラスメソッドとして書く場合は、
public int a(int n) => n + 1;
のような短文形式のみ可能で、
public int a(int n) => {(略); return n};
のようなブロックで囲う複文形式は許可されないですの。

同様に、if文は使えない…けれど、三項演算子は使えるようですの。
public int a(int n) => n == 1 ? 1 : 0;


式形式のメンバー (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/statements-expressions-operators/expression-bodied-members
式本体の定義のサポートは、メソッドとプロパティの get アクセサーのために C# 6 で導入され、C# 7.0 で拡張されました。 
とあるように、基本的には簡単な(?)getアクセサ用にあるようですの。

0 コメント: