Csharp-reference-parameters
提供:Dev Guides
C#-参照によるパラメーターの受け渡し
参照パラメーターは、変数の*メモリ位置への参照*です。 値パラメータとは異なり、参照渡しでパラメータを渡すと、これらのパラメータに新しい格納場所は作成されません。 参照パラメータは、メソッドに提供される実際のパラメータと同じメモリ位置を表します。
*ref* キーワードを使用して、参照パラメーターを宣言できます。 次の例はこれを示しています-
using System;
namespace CalculatorApplication {
class NumberManipulator {
public void swap(ref int x, ref 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(ref a, ref 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 : 200
After swap, value of b : 100
_swap_関数内で値が変更され、この変更が_Main_関数に反映されていることを示しています。