2010年1月2日土曜日

refキーワード、outキーワードを使用して、call by value(値渡し)、call by reference(参照渡し)、そしてoutキーワードによる参照渡しをしてそれぞれ出力される値を確認してみる。

using System;


class SampleClass
{
    // call by value(値渡し)
    public void printOut1(int n)
    {
        n++;
        Console.WriteLine(n);
    }
    // call by reference(参照渡し)
    public void printOut2(ref int n)
    {
        n++;
        Console.WriteLine(n);
    }
    // outキーワード(参照渡し)
    public void printOut3(int n,out int m)
    {
        m=n+1;
        Console.WriteLine(m);
    }
}


class MainClass
{
    static void Main()
    {
        int n = 0, m;
        var sample = new SampleClass();
        // 出力値:1
        sample.printOut1(n);
        /* nが変更されていないことを確認
         * 出力値:0 */
        Console.WriteLine(n);
        // 出力値:1
        sample.printOut2(ref n);
        /* nが変更されていることを確認
         * 出力値:1 */
        Console.WriteLine(n);
        // n=0
        n--;
        // 出力値:1
        sample.printOut3(n, out m);
        // 出力値:1
        Console.WriteLine(m);
    }
}

0 コメント:

コメントを投稿