Unterschied zwischen ref- und out-Parametern in c #

ref (Referenz) Parameter
Der Parameter "ref" wird verwendet, um den Wert als Referenz vom Aktualparameter an den Formalparameter zu übergeben, d. H. Von der Notrufmethode an die aufgerufene Methode. In C # ist ein mit einem "ref" -Modifizierer deklarierter Parameter ein Referenzparameter. Wenn Sie Parameter als Referenz übergeben, wird im Gegensatz zu Werteparametern kein neuer Speicherort für diesen Parameter erstellt. Alle am Formalparameter vorgenommenen Änderungen werden im Aktualparameter übernommen.

Beispiel für einen ref-Parameter

1234567 ungültiges Inkrement (ref int m) m = m + 100; // Wert von n wird geändert ..... int n = 50; Inkrement (ref n);

Wie im obigen Programmausschnitt gezeigt, werden alle an m vorgenommenen Änderungen in n übernommen, wenn der Parameter als Referenz übergeben wird.

out (Ausgabe) Parameter
Über den Ausgabeparameter wird das Ergebnis an die aufrufende Funktion zurückgegeben. Das Schlüsselwort 'out' wird verwendet, um den Parameter als Ausgabeparameter zu deklarieren. Ähnlich wie bei einem Referenzparameter erstellt ein Ausgabeparameter keinen neuen Speicherort. Es wird stattdessen ein Alias ​​für den Parameter in der aufrufenden Methode.

Beispiel für out-Parameter

12345678910111213 using System; Klasse MyOutput statisches Leerzeichen (int p, out int q) q = p * p; public static void main () int x; Quadrat (5, out x); Console.WriteLine ("Quadrat von eine Nr. ist: "+ x);

Im obigen Programm wird x beim Aufruf von function als out-Parameter deklariert, und wie Sie sehen, wurde x nicht initialisiert. Wenn die Square-Funktion beendet ist, wird der Wert von q in den Ausgabeparameter x kopiert.

Unterschied zwischen ref- und out-Parametern in C #

  1. Im Referenzparameter spiegeln die am Formalparameter vorgenommenen Änderungen den tatsächlichen Parameter wider, während der Out-Parameter den Out-Parameter der aufrufenden Funktion berücksichtigt.
  2. Dem Aktualparameter 'output' wurde normalerweise kein Wert zugewiesen, während einem als Referenz deklarierten Aktualparameter vor dem Aufruf immer ein Wert zugewiesen werden sollte.
    Hinweis: Sie müssen dem out-Parameter im Methodenrumpf einen Wert zuweisen. Andernfalls wird die Methode nicht kompiliert.
  3. Sowohl out- als auch ref-Parameter erzeugen keinen neuen Speicherplatz.
  4. Die ref- und out-Parameter werden zur Laufzeit unterschiedlich behandelt, zur Kompilierzeit jedoch gleich.
ES