c#プログラミングガイド(三)汎用依頼(Generic Delegate)
8800 ワード
汎用依頼は実際には.NET Frameworkの事前定義された依頼であり、基本的には一般的な依頼をすべてカバーしているので、ユーザーが再宣言する必要はありません.
簡単です.次の簡単な例を見てください.
Actionシリーズの汎用依頼は、パラメータを返さない依頼で、私は簡単にパラメータのない依頼を挙げて、1つのパラメータの依頼を持って、2つのパラメータの依頼を持っています.呼び出し時と通常の依頼は同じではありません.具体的な方法はlambdaで書いたもので、前の文章で紹介しました.簡単ではないか、自分でpublic delegate void VoidDelegate()を書く必要はありません.しました.ほほほ、簡潔明瞭です.
次に、戻り値のある汎用委任を示します.
簡単なのか、Funcシリーズの依頼時に戻り値の依頼があります.しかし、便利さのあまり、マイクロソフトの鬼斧神工に感嘆しましょう.ははは!!
サンプルコード:ダウンロード
簡単です.次の簡単な例を見てください.
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シリーズの依頼時に戻り値の依頼があります.しかし、便利さのあまり、マイクロソフトの鬼斧神工に感嘆しましょう.ははは!!
サンプルコード:ダウンロード