c#プログラミングガイド(三)汎用依頼(Generic Delegate)

8800 ワード

汎用依頼は実際には.NET Frameworkの事前定義された依頼であり、基本的には一般的な依頼をすべてカバーしているので、ユーザーが再宣言する必要はありません.
 
簡単です.次の簡単な例を見てください.

  
    
1 // void method();
2   Action test1 = () => { Console.WriteLine( " void method(); " ); };
3 // void method(x);
4   Action < int > test2 = (x) => { Console.WriteLine( " void method(t1) " ); };
5 // void method(x, y);
6   Action < int , int > test3 = (x, y) => { Console.WriteLine( " void method(t1, t2) " ); };
7
8 test1();
9 test2( 1 );
10 test3( 2 , 3 );

 
Actionシリーズの汎用依頼は、パラメータを返さない依頼で、私は簡単にパラメータのない依頼を挙げて、1つのパラメータの依頼を持って、2つのパラメータの依頼を持っています.呼び出し時と通常の依頼は同じではありません.具体的な方法はlambdaで書いたもので、前の文章で紹介しました.簡単ではないか、自分でpublic delegate void VoidDelegate()を書く必要はありません.しました.ほほほ、簡潔明瞭です.
 
次に、戻り値のある汎用委任を示します.

  
    
1 // int method();
2   Func < int > test4 = () => 10 ;
3 // int method(int);
4   Func < int , int > test5 = (x) => x * 2 ;
5 // int method(int ,int);
6   Func < int , int , int > test6 = (x, y) => x * y;
7
8 Console.WriteLine(test4());
9 Console.WriteLine(test5( 3 ));
10 Console.WriteLine(test6( 4 , 5 ));

 
簡単なのか、Funcシリーズの依頼時に戻り値の依頼があります.しかし、便利さのあまり、マイクロソフトの鬼斧神工に感嘆しましょう.ははは!!
 
サンプルコード:ダウンロード