カテゴリー
C

独習C#第3版P442、インスタンスメソッドにデリゲートを設定する

using System;

namespace Chapter01All
{
    delegate int Calcs(int a, int b);
    class DeleGateSample
    {
        int Kasan(int a, int b)
        {
            return a + b;
        }
        int Genzan(int a, int b)
        {
            return a - b;
        }
        int Kakezan(int a, int b)
        {
            return a * b;
        }
        int Warizan(int a, int b)
        {
            return a / b;
        }

        static void Main()
        {
            DeleGateSample sobj = new DeleGateSample();
            
            Calcs Op = sobj.Kasan;
            Console.WriteLine(Op(10, 20));

            Op = sobj.Genzan;
            Console.WriteLine(Op(10, 20));

            Op = sobj.Kakezan;
            Console.WriteLine(Op(10, 20));

            Op = sobj.Warizan;
            Console.WriteLine(Op(10, 20));

            Calcs[] Ope = new Calcs[] {sobj.Kasan, sobj.Genzan, sobj.Kakezan, sobj.Warizan };
            for(int i=0; i<Ope.Length; i++)
            {
                Console.WriteLine(Ope[i](10, 20));
            }

        }
    }
}

デリゲートを個別に書く場合と、配列に書く場合の比較。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

inserted by FC2 system