2010年1月21日木曜日

1つのClassにすべてのデータメンバー、Methodを記述してインスタンス化したり、partialキーワードを使用してClassを分割して定義し、そのClassをインスタンス化したり、partialキーワードを使用してMethodの宣言だけして後から実際の処理を定義したりして、それらを使用して同様の処理を3種類の方法で実行してみる。

using System;


// 1つのクラスにすべて記述
class SampleClass1
{
    int n = 1;
    string s = "Sample1";


    public void printOut()
    {
        Console.WriteLine("{0}:{1}", n, s);
    }
}


// SampleClass1と同様の処理を分割
partial class SampleClass2
{
    int n=2;
}


partial class SampleClass2
{
    string s="Sample2";
}


partial class SampleClass2
{
    public void printOut()
    {
        Console.WriteLine("{0}:{1}",n,s);
    }
}


partial class MainClass
{
    // メソッドの宣言だけしておく
    static partial void printOut(int n,string s);


    static void Main()
    {
        // SampleClass1,2をインスタンス化
        SampleClass1 sample1=new SampleClass1();
        SampleClass2 sample2=new SampleClass2();


        /* 出力値
         * 1:Sample1
         * 2:Sample2 */
        sample1.printOut();
        sample2.printOut();


        int n = 3;
        string s = "Sample3";
        
        // 出力値:3:Sample3
        printOut(n,s);
    }
}


// 実際のメソッド(printOut()(MainClass))を定義
partial class MainClass
{
    static partial void printOut(int n,string s)
    {
        Console.WriteLine
            ("{0}:{1}", n,s);
    }
}

0 コメント:

コメントを投稿