パラメーターの引き渡し (C# プログラミング ガイド)

C# では、引数が、値または参照でパラメーターに渡されます。 引数を参照で渡すと、関数メンバー (メソッド、プロパティ、インデクサー、演算子、およびコンストラクター) は、パラメーターの値を変更でき、その変更を呼び出し元の環境で永続化できます。 パラメーターを参照で渡すには、ref キーワードまたは out キーワードを使用します。 ここでは、説明を簡単にするために、例に ref キーワードだけを使用しています。 ref と out の違いの詳細については、「ref (C# リファレンス)」、「out (C# リファレンス)」、および「ref と out を使用した配列の引き渡し (C# プログラミング ガイド)」を参照してください。

次の例は、値パラメーターと参照パラメーターの違いを示しています。

class Program
{
    static void Main(string[] args)
    {
        int arg;

        // Passing by value. 
        // The value of arg in Main is not changed.
        arg = 4;
        squareVal(arg);
        Console.WriteLine(arg);
        // Output: 4 

        // Passing by reference. 
        // The value of arg in Main is changed.
        arg = 4;
        squareRef(ref arg);
        Console.WriteLine(arg);
        // Output: 16 
    }

    static void squareVal(int valParameter)
    {
        valParameter *= valParameter;
    }

    // Passing by reference 
    static void squareRef(ref int refParameter)
    {
        refParameter *= refParameter;
    }
}

詳細については、次のトピックを参照してください。

C# 言語仕様

詳細については、「C# 言語仕様」を参照してください。言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。

参照

関連項目

メソッド (C# プログラミング ガイド)

概念

C# プログラミング ガイド