Loading [MathJax]/extensions/tex2jax.js

2012年11月24日土曜日

C# デリゲート4 (ラムダ式ってなに?)C#

ラムダ式ってなに?
匿名メソッドをもう少し簡単なかたちで書くことができる機能。
() ⇒ {} みたいな感じで書ける。
どうやって使うの?
  1. delegate()  
  2. {  
  3. }  
  1. () =>  
  2. {  
  3. }  
で置き換えるように使う。
サンプル
前回までのももたろうのサンプルで匿名メソッドにラムダ式を導入。
  1. static void Main(string[] args)  
  2. {  
  3.     // 3人をお供に加える。  
  4.     Dog dog = new Dog();  
  5.     Monkey monkey = new Monkey();  
  6.     Kiji kiji = new Kiji();  
  7.   
  8.     // 攻撃の作戦をたてる  
  9.     Action[] attacks = new Action[4];  
  10.     attacks[0] = dog.Attack;  
  11.     attacks[1] = monkey.Attack;  
  12.     //attacks[2] = delegate()       // 匿名メソッドを  
  13.     attacks[2] = () =>              // ラムダ式で書き換え  
  14.     {   
  15.         //ここで関数を直に定義している。  
  16.         Console.WriteLine("ここで一休み");   
  17.     };  
  18.     attacks[3] = kiji.Attack;  
  19.   
  20.     // 攻撃する  
  21.     for (int i = 0; i < attacks.Length; i++ )  
  22.     {  
  23.         attacks[i]();  
  24.     }  
  25.   
  26.     Console.ReadLine();  
  27. }  
備考
・ラムダ式の表現の仕方はいっぱいある。
  1. () =>  {式}  
  2. (変数) => {式}  
  3. 変数 => {式}  // ()を省略  
  4. 変数 => 式  // {}を省略  
0 件のコメント:
コメントを投稿