カテゴリー
C

独習C#第3版P438、デリゲート

using System;

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

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

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

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

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

 例としてやって見ましたが、これだとあまりやる意味がないようにも思います。例えば、Opを配列にしてしまうと少しは意味があるようにも思えますが。

using System;

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

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

コメントを残す

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

inserted by FC2 system