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

関数内で値が変更されていても、値に変更がないことを示しています。