2010年1月8日金曜日

拡張メソッドを追加してクラスを拡張し、そのクラスをインスタンス化して実行してみる。

using System;


class SampleClass
{
    public int n=1;
    public string s="ExtendMethod1";
}


// 静的クラス
static class ExtendMethodClass
{
    // 拡張メソッド(静的メソッド)
    public static void printOut(this SampleClass s)
    {
        // 出力値:s.n:s.s
        Console.WriteLine("{0}:{1}", s.n, s.s);
    }
}


class MainClass
{
    static void Main()
    {
        // SampleClassをインスタンス化
        SampleClass sample = new SampleClass();
        /* 拡張メソッドを実行
         * 出力値:1:Extend1
         */
        sample.printOut();
        sample.n = 2;
        sample.s = "ExtendMethod2";
        // 出力値:2:ExtendMethod2
        sample.printOut();
        sample.n += 1;
        sample.s = "ExtendMethod3";
        // 出力値:3:ExtendMethod3
        sample.printOut();
    }
}

0 コメント:

コメントを投稿