パラメーターの引き渡し (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# の構文と使用法に関する信頼性のある情報源です。