とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

戻り値を持つラムダ式(匿名メソッド)の書き方

C#でラムダ式を書くことがめっぽう増えたんだけど
あまり書きすぎるとよくないなぁと思いながら、なんだかんだいって書きまくってる。
だって直感的なんだもん。

今回、戻り値を返すラムダ式で、匿名的に書きたかったんだけど
直感的に書くと

「ラムダ式はデリゲート型ではないため~~型に変換できません」

とかエラーがでるんだなぁ。

ラムダを匿名的に書くと、実際はFunc<T>型に変換されたものが返るみたい。

というわけでメモ・・・

戻り値を返すラムダ式の書き方




後ろの()が気持ち悪いと思うけど、結局のところ後ろに()で引数を指定(引数なしでも)
しなければならないところをみると、ラムダ式という別モノとして考えるよりも
デリゲートのシンタックスシュガーと認識してる方がパニックにならないかもねぇ。

ついでに、ラムダについて少しメモ書きを・・・

お得意のMSさんところを見てみると・・・・
http://msdn.microsoft.com/ja-jp/library/bb397687.aspx

いろいろ情報が載ってるんだけど

・式形式のラムダ
・ステートメント形式のラムダ
・標準クエリ演算子でのラムダ

などなど、よくわからないものがいっぱい。


標準クエリ演算子の多くが、汎用デリゲートの Func ファミリに属する型の入力パラメーターを持ちます。 Func デリゲートは型パラメーターを使用して入力パラメーターの数と型、およびデリゲートの戻り値の型を定義します。 Func デリゲートは、ソース データのセット内の各要素に適用されるユーザー定義の式をカプセル化する場合に非常に便利です。 たとえば、次のデリゲート型を考えてみましょう。

public delegate TResult Func(TArg0 arg0)

このデリゲートを Func myFunc としてインスタンス化できます。int は入力パラメーター、bool は戻り値です。 戻り値は必ず最後の型パラメーターで指定されます。 Func は 2 つの入力パラメーター (int と string) と戻り値の型 bool を持つデリゲートを定義しています。 次の Func デリゲートを呼び出すと、入力パラメーターが 5 に等しいかどうかを示す true または false が返されます。

Func myFunc = x => x == 5;
bool result = myFunc(4); // returns false of course


こんな感じ???
いまいちまだFunc<>が何者なのか理解できていないところがあるんだけど

今回作った例は
標準ステートメント式でのラムダに当たるものだと予想。


うーん。
カーソルを当てるだけで英文が出てくるMSサイトを読みあさらないとダメなのかなぁ
と悩んでたら、見やすいブログさん発見!!

やさしいC# 3.0まとめblog

こちらのブログさんで紹介してる情報のほうがはるかにわかりやすくて
ディ・モールトですよ。
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

次のページ

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。