2010年1月18日月曜日

値渡し(call by value)とrefキーワードを使用して参照渡し(call by reference)でパラメータを渡して、それぞれ呼び出しもとのMethodでパラメータがどのように変化するのかを確認してみる。

using System;


class SampleClass
{
    // 値渡し(call by vlue)
    public void sample1(int n)
    {
        n+=1;
        Console.Write("sample1:{0} ",n);
    }


    // 参照渡し(call by reference
    public void sample2(ref int n)
    {
        n += 1;
        Console.Write("sample2:{0} ", n);
    }
}


class MainClass
{
    static void Main()
    {
        // SampleClassをインスタンス化
        SampleClass sample = new SampleClass();


        // int型の値nを定義
        int n = 1;


        // 出力値:2
        sample.sample1(n);
        // 出力値:1 (変更なし)
        Console.WriteLine(n);
        // 出力値:2
        sample.sample2(ref n);
        // 出力値:2 (変更が反映される)
        Console.WriteLine(n);
    }
}

0 コメント:

コメントを投稿