C#の無名関数とは? わかりやすく解説

C#の無名関数

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/21 01:43 UTC 版)

無名関数」の記事における「C#の無名関数」の解説

C#には大きく分けて2種類無名関数匿名関数)の記法が存在する一つは、C# 2.0導入され匿名メソッド (anonymous method) である。もう一つは、C# 3.0導入されラムダ式である。通例ラムダ式のほうが簡潔であり、またラムダ式は式木として扱うこともできるため、基本的にC# 3.0以降ではラムダ式用いる。 // 匿名メソッドの例Func add = delegate(int x, int y) { return x + y; };Console.WriteLine(add(2, 3)); C#ラムダ式匿名メソッド比較した場合唯一匿名メソッド勝っている点は、パラメーターリストを省略できることである。 // public delegate void EventHandler(object sender, EventArgs e);EventHandler click;// 匿名関数引数使用しない場合引数リスト省略できるclick = delegate { Console.WriteLine("Clicked"); };// ラムダ式推論可能な場合引数型名省略できるclick = (sender, e) => Console.WriteLine("Clicked");// ラムダ式引数使用しない場合も、引数リスト省略できない// click = () => Console.WriteLine("Clicked"); なお、ラムダ式匿名メソッドがデリゲートパラメータとして渡される場合内部的にコンパイラによって自動的に命名された(C#開発環境では通常命名できない名前の)クラス生成されラムダ式メソッドはそのメンバーメソッドとして自動的に命名された後、コンパイル実行される。つまり、IL化され時点で定義済みの名前付メソッドデリゲート生成して渡す操作へと置換されるため、コンパイル後は通常の(名前付メソッドの)デリゲート呼び出し挙動的にはほぼ変わらない扱いとなる。 例えば(実用的ではないものの)リフレクションを介して無名関数「名前」を見つけ出せば再度呼び出すことも可能である。

※この「C#の無名関数」の解説は、「無名関数」の解説の一部です。
「C#の無名関数」を含む「無名関数」の記事については、「無名関数」の概要を参照ください。

ウィキペディア小見出し辞書の「C#の無名関数」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「C#の無名関数」の関連用語

1
12% |||||

C#の無名関数のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



C#の無名関数のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの無名関数 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS