カテゴリー
C

独習C#第3版、匿名メソッド

using System;

namespace Chapter01All
{
    class Ano
    {
        public int Syukei(int l)
        {
            int w = 0;
            for (int i = 1; i <= l; i++)
            {
                w += i;
            }
            return w;
        }
    }
    class Demo
    {
        static void Main()
        {
            Ano obj = new Ano();
            Console.WriteLine(obj.Syukei(10));
        }
    }
}

class AnoのインスタンスからSyukeiを呼ぶ場合。

using System;

namespace Chapter01All
{
    class Ano
    {
        public static int Syukei(int l)
        {
            int w = 0;
            for (int i = 1; i <= l; i++)
            {
                w += i;
            }
            return w;
        }
    }
    class Demo
    {
        static void Main()
        {
            //Ano obj = new Ano();
            Console.WriteLine(Ano.Syukei(10));
        }
    }
}

Syukeiをstatic に変えると、インスタンスでなくなるので、呼び出す方はAno.Syukei(10)とかになる。

using System;

namespace Chapter01All
{
    delegate int AnoSyukei(int limit);

    class Demo
    {
        static void Main()
        {
            AnoSyukei syukei = delegate (int limit)
            {
                int w = 0;
                for (int i = 1; i <= limit; i++)
                {
                    w += i;
                }
                return w;
            };
            Console.WriteLine(syukei(10));
        }
    }
}

 匿名メソッドに変えてみました。通常のメソッド呼び出し(つまり上の2例のように)の構文によってメソッドを呼び出すことが無い場合、使えるということです。

コメントを残す

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

inserted by FC2 system