導入
return1つだけの短いメソッドは=>で1行に書けます(式本体)。また、メソッドの中だけで使う小さな関数をローカル関数として定義できます。どちらもコードを簡潔・明確にします。
図解
flowchart TB
A["int Square(int n)<br/>{ return n * n; }"] -->|同じ意味| B["int Square(int n) => n * n;"]
C["メソッドの中だけで使う<br/>小さな補助関数"] --> D["ローカル関数として内側に定義"]
サンプル
// 式本体メンバー: { return ...; } を => ...; で1行に
int Square(int n) => n * n;
Console.WriteLine(Square(5)); // 25
// ローカル関数: メソッド(やトップレベル)の中に閉じた関数
Console.WriteLine(Factorial(4)); // 24
int Factorial(int n)
{
// Helper はこの中でだけ使える補助関数
int Helper(int x) => x <= 1 ? 1 : x * Helper(x - 1);
return Helper(n);
}
メソッド(...) => 式;は{ return 式; }の短縮形(式本体メンバー)- ローカル関数は他のメソッドの内側に定義する、その場限りの関数
- 「1行で書ける」「外部に公開する必要がない」処理を簡潔に表現できる
演習
// TODO: 摂氏を華氏に変換する式本体メソッド ToF を定義してください(華氏 = 摂氏 * 9 / 5 + 32)
// ToF(20) の結果を "68" と出力してください
___
- 期待される出力:
68
ヒント1を見る
int ToF(int c) => c * 9 / 5 + 32;
ヒント2を見る
Console.WriteLine(ToF(20)); int ToF(int c) => c * 9 / 5 + 32;
まとめ
=> 式;でメソッドを1行に書ける(式本体メンバー)- ローカル関数はメソッド内に閉じた補助関数
- どちらも「簡潔さ」と「意図の明確さ」に貢献する
次回: 既存の型に後付けでメソッドを生やす「拡張メソッド」です。