システム使用して; System.Collections.Genericを使用して、 System.Linqのを使用して、 System.Textのを使用して、 使用してSystem.Threading.Tasks; / * フレームワークが提供する//デリゲート型 の戻りなし// アクションACT0 =()=>コンソール.WriteLine( "復帰せずにパラメータなし"); アクション<整数> X = ACT1 => Console.WriteLineを( "リターン・パラメータなし1。"); アクション<整数、整数> ACT2 =(X、Y)=> Console.WriteLineを( "帰還基準2無し"); //戻りが有する のFunc <ストリング> func0 =() => " ;バック引数がない" "パラメーター復帰した1" FUNC <intは、文字列> X =関数func1 =>は、 FUNCキー<整数、ダブル、文字列>関数func2 =(X、Y)=> "は、マルチパラメータが戻ってきました"。 * / 名前空間は_delegetを委託 { デリゲートを宣言し、// 1 テンプレートの修正を加えたdelegetを宣言するために//メソッドを //メソッドがクラスに脱出することで、そのようなバック、参照番号またはタイプのようなクラスを指定する使用規則、 公衆NRNCデリゲートボイド(); 公共INT hRnCデリゲート(); デリゲートhRhCストリング(文字列A、BのINT) ; クラスプログラム { // 2、デリゲートを定義するためのメソッド呼び出し プライベート静的ボイドfor_nRnC_1(){Console.WriteLineを( "for_nRnC_1を");} };プライベート静的ボイドfor_nRnC_2(){Console.WriteLineを( "for_nRnC_2") プライベート静的for_hRhCストリング(文字列A、V int型) { 文字列のTEMP = nullは、 のために(; IはV <I ++はI = 0 INT) { TEMP = A +; } 戻りTEMPを; } メインボイド静的(文字列[]引数) { // 3、メソッドは呼び出しリストを含むデリゲートインスタンス化オブジェクト、 //パラメータなしリターンせず NRNC myDeleget_nRnC NRNC新しい=(for_nRnC_1)新規; //パラメータが、そこ戻ってき hRhC myDeleget_hRhC = hRhC(for_hRhC)新新; // 4、(実行)デリゲートを使用します。 // NRNC myDeleget_nRnC.Invokeを(); // hRhC 文字列myDeleget_hRhC RET =( "バトゥ" ,. 5); Console.WriteLineを(RET); //マルチモードデリゲート、この方法は、戻り値の最後の値を返し myDeleget_nRnC + = for_nRnC_2と、 myDeleget_nRnC - = for_nRnC_2; Console.Read(); } } //イベント_Eventの クラスEventTest { ボイドのdoSomething() { ForEvent新しい新しいForEvent MYTEST =(); myTest.shijian + = MyTest_shijian; //myTest.shijian = MyTest_shijian; //myTest.shijian(); myTest.weituo = MyTest_shijian。 myTest.weituo(); } プライベートボイドMyTest_shijian(){;;;} } クラスForEvent { //これを直接割り当てることができる属性であり、実行 直接裏返し露出の方法に対応//クラスを パブリックNRNC weituo {セット}; GET および外部から呼び出すことはできません= - //これが唯一+ =またはできるイベントであり 、//イベントは、制御対象のアクセス許可として使用され //のみ、このイベントは、元のメソッドは変更されません、吊り方式に実行したり、外部にメソッドを削除することはできません 公開イベントNRNCのshijian。 } }