スキップしてメイン コンテンツに移動

メソッド内メソッドを書く

C#にはLinqという便利な機能があり、これを使うとメッソドの中にメソッドを書くことができる。メソッドをわざわざ書くまでもないような小さな関数を書きたいときに超便利。

たとえば、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


そのあとは、getXXX を普通の関数のように呼び出して値を得ることができる。

なにこれ、便利。

コメント

このブログの人気の投稿

SQLでは文字列の前に「N」が必要だ

SQLServerのテーブルにテキストを登録したら一部の文字が文字化けした。環境依存文字だと化けるみたい。

コンボボックスのDataSourceプロパティの使い方

コンボボックスに表示するデータを設定するのを簡単にする工夫をまとめます。コンボボックスのDataSourceプロパティを上手に使いましょう。(2017/8/30追記)