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_関数に反映されていることを示しています。