メソッド内メソッドを書く
C#にはLinqという便利な機能があり、これを使うとメッソドの中にメソッドを書くことができる。メソッドをわざわざ書くまでもないような小さな関数を書きたいときに超便利。
たとえば、2つの値の積をゲットしたい、ただし最小値は0以上としたいとする。
そうした関数をLinq式で書いてみる。これは汎用デリゲートというものらしい。下のコードではFuncで始まるコード。
そのあとは、getXXX を普通の関数のように呼び出して値を得ることができる。
なにこれ、便利。
たとえば、2つの値の積をゲットしたい、ただし最小値は0以上としたいとする。
そうした関数をLinq式で書いてみる。これは汎用デリゲートというものらしい。下のコードではFuncで始まるコード。
Func<int, int, int> getXXX = (n1, n2) => n1 * n2 >= 0 ? n1 * n2 : 0; var n55= getXXX(5, 5); // 25 var n57= getXXX(5, -7); // 0
なにこれ、便利。
コメント
コメントを投稿