独習C#勉強メモ4

独習C#を読んで自分が知らなかったことまとめ

デリゲート


デリゲードで表したメソッドはint型、string型みたいに引数とかに入れる事ができる。
//クラスの外で定義
delegate void DoDeligate(string str);

class DelegateTest
    {
        static void Heppoko(string s)
        {
            //Heppokoの処理内容
            Console.WriteLine(s);
        }
        static void StringCount(string s)
        {
            //StringCountの処理内容
            int num = s.Length;
            Console.WriteLine(num);
        }
        //プログラムが動いたとき一回だけこの中の処理が動く前提で例を書いている。

        void start()
        {
            //Heppokoメソッドが使える
            var v1 = new DoDeligate(Heppoko);
            //これは
            //DoDeligate del = method;
            //とも書ける。
            v1("へっぽこ太郎");
            //DoDeligateメソッドが使える
            var v2 = new DoDeligate(StringCount);
            v2("へっぽこ太郎");
        }
    }

マルチキャストデリゲート


デリゲートはメソッドを1個だけじゃなくて複数受け取ることもできる。 上のHeppoko,StringCountメソッドがある前提で例を書くと

[Read More]