委託_deleget

システム使用して; 
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。
    } 
}

  

おすすめ

転載: www.cnblogs.com/Jeely/p/11003516.html