Csharp-value-parameters
提供:Dev Guides
C#-値によるパラメーターの受け渡し
これは、パラメーターをメソッドに渡すためのデフォルトのメカニズムです。 このメカニズムでは、メソッドが呼び出されると、値パラメーターごとに新しい保存場所が作成されます。
実際のパラメーターの値がそれらにコピーされます。 したがって、メソッド内のパラメーターに加えられた変更は、引数に影響しません。 次の例は、概念を示しています-
using System;
namespace CalculatorApplication {
class NumberManipulator {
public void swap(int x, int y) {
int temp;
temp = x;/*save the value of x*/
x = y; /*put y into x*/
y = temp;/*put temp into y*/
}
static void Main(string[] args) {
NumberManipulator n = new NumberManipulator();
/*local variable definition*/
int a = 100;
int b = 200;
Console.WriteLine("Before swap, value of a : {0}", a);
Console.WriteLine("Before swap, value of b : {0}", b);
/*calling a function to swap the values*/
n.swap(a, b);
Console.WriteLine("After swap, value of a : {0}", a);
Console.WriteLine("After swap, value of b : {0}", b);
Console.ReadLine();
}
}
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :100
After swap, value of b :200
関数内で値が変更されていても、値に変更がないことを示しています。