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

C#でのoutキーワードとrefキーワードの違い


outキーワード

outキーワードは、引数を参照型としてメソッドに渡すために使用され、メソッドが複数の値を返す必要がある場合に主に使用されます。 refキーワードは、引数を参照型としてメソッドに渡すためにも使用され、既存の変数をメソッドで変更する場合に使用されます。以下は、C#でのrefおよびoutキーワードの有効な使用法です。

using System.IO;
using System;
public class Program {
   public static void update(out int a){
      a = 10;
   }
   public static void change(ref int d){
      d = 11;
   }
   public static void Main() {
      int b;
      int c = 9;
      Program p1 = new Program();
      update(out b);
      change(ref c);
      Console.WriteLine("Updated value is: {0}", b);
      Console.WriteLine("Changed value is: {0}", c);
   }
}

出力

Updated value is: 10
Changed value is: 11

以下は、refキーワードとoutキーワードの重要な違いの一部です。

キー キーワード外
Sr。いいえ。 refキーワード
1 目的 refキーワードは、呼び出されたメソッドが渡されたパラメーターを更新する必要がある場合に使用されます。 outキーワードは、呼び出されたメソッドが渡された複数のパラメーターを更新する必要がある場合に使用されます。
2 方向 refキーワードは、双方向でデータを渡すために使用されます。 outキーワードは、一方向の方法でデータを取得するために使用されます。
3 初期化 変数をrefとして渡す前に、初期化する必要があります。そうしないと、コンパイラがエラーをスローします。 outキーワードが使用されている場合、変数を初期化する必要はありません。
4 初期化 呼び出されたメソッドでは、refとして渡されたパラメータを初期化する必要はありません。 呼び出されたメソッドでは、渡されたパラメータを初期化する必要があります。

  1. GoとJavaの違い。

    行く Goは手続き型プログラミング言語です。プログラムはパッケージを使用して組み立てられます。動的言語に似たパターンを採用する環境をサポートします。 Java Javaはオブジェクト指向プログラミング言語です。 Javaは静かで高速、信頼性が高く、安全です。最も広く使用されている言語でもあります。 GoとJavaの重要な違いは次のとおりです。 Sr。いいえ。 キー 移動 Java 1 タイプ Goは手続き型プログラミング言語であり、動的言語と同様のパターンをサポートしています。 Javaはオブジェクト指向プログラミング言語です。 2 クラスのサポート

  2. Javaでの揮発性と一時的な違い

    volatileキーワードは、2つのスレッドが同じ変数を同時に読み書きするマルチスレッド環境で使用されます。 volatileキーワードは、CPUキャッシュではなく、変更をメインメモリに直接フラッシュします。 一方、transientキーワードは、シリアル化中に使用されます。一時としてマークされたフィールドは、シリアル化および逆シリアル化の一部にすることはできません。変数の値を保存したくない場合は、その変数で一時的なキーワードを使用します。 Sr。いいえ。 キー 揮発性 一時的 1 基本 Volatileキーワードは、変更をメインメモリに直接フラッシュするために