C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のrefパラメーターとoutパラメーターの違いは何ですか?


参照パラメータ

参照パラメータは、変数のメモリ位置への参照です。値パラメーターとは異なり、参照によってパラメーターを渡す場合、これらのパラメーターの新しい保管場所は作成されません。

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

出力パラメータ

returnステートメントは、関数から1つの値のみを返すために使用できます。ただし、outパラメータを使用すると、関数から2つの値を返すことができます。

以下は例です-

using System;

namespace CalculatorApplication {
   class NumberManipulator {
      public void getValue(out int x ) {
         int temp = 10;
         x = temp;
      }

      static void Main(string[] args) {
         NumberManipulator n = new NumberManipulator();

         /* local variable definition */
         int a = 150;

         Console.WriteLine("Before method call, value of a : {0}", a);

         /* calling a function to get the value */
         n.getValue(out a);

         Console.WriteLine("After method call, value of a : {0}", a);
         Console.ReadLine();
      }
   }
}

出力

Before method call, value of a : 150
After method call, value of a : 10

  1. Wi-Fi 6と5Gネットワ​​ークの違いは何ですか?

    5Gネットワ​​ークは多くの話題を呼んでいるトピックであり、その実装はソーシャルネットワークに存在する会話のトピックです。別のテクノロジーであるWi-Fi6の周りに存在する期待のように。 Wi-Fi6と5Gネットワ​​ークの違いを特定する方法を学ぶ 。 WiFi6とは何ですか? Wi-Fi6は新しい認定に他なりません IEEE802.11ax規格に基づいています。以前のWi-Fiテクノロジーとは異なり、Wi-FI6はより長い距離でより高速な接続を可能にします。 その性能は、複数の接続されたデバイスで最適であり、電気的欠陥の影響を受けることなく適切に機能します。 2.4Ghzと5Ghzの周

  2. Windows 10 と Windows 11 の違いは?

    Microsoft は最新の Windows 11 をリリースし、多くの新機能と改善を行いました。また、多くのパッチとアップデートにより、Windows 10 は新しい Windows 11 よりも安定した OS になりました。同社によると、2025 年以降に Windows 10 でのサポートが終了するため、Windows 11 または Windows 10 へのアップグレードを決定するのに十分な時間があります。 Windows 10 を快適に使用してください。この記事では、Windows 10 と Windows 11 の比較を用意しました。 新しい OS に切り替えるか、Windows