Unterschied zwischen out und ref in C #

Schlüsseldifferenzausgang vs ref in C #
 

C # ist eine moderne, von Microsoft entwickelte Programmiersprache. Es wird für die Entwicklung verschiedener Anwendungen für Desktop, Web und Mobile verwendet. Funktionen oder Methoden sind ein Konzept in der Programmierung. Diese Gruppe von Anweisungen, die zum Ausführen einer bestimmten Aufgabe verwendet wird, wird als Funktion oder Methode bezeichnet. In C # -Programmen beginnt die Ausführung mit main (). Es ist ein Beispiel für eine Methode. Beim Aufruf einer Methode werden Daten an die Methode übergeben oder von der Methode empfangen. Die Methode, die die neue Methode aufruft, ist bekannt als Aufruf der Methode. Die neue Methode ist bekannt als Methode genannt. Zur Verwaltung der Übergabewerte und zum Abrufen des Ergebnisses verwendet C # Parameter. Sie sind Werteparameter, Ausgabeparameter und Referenzparameter. Die Werteparameter werden verwendet, um Parameter nach Wert in die Methode zu übergeben. Die Referenzparameter werden verwendet, um Parameter per Referenz an die Methode zu übergeben. Die Ausgabeparameter werden verwendet, um das Ergebnis von der Methode zurückzugeben. In C # wird das out-Schlüsselwort für Ausgabeparameter und das ref-Schlüsselwort zum Referenzieren von Parametern verwendet. Das Hauptunterschied zwischen out und ref in C # ist das, out ist ein Schlüsselwort zum Verweisen auf einen Ausgabeparameter, der verwendet wird, um Ergebnisse von der aufgerufenen Methode an aufrufende Methode zu übergeben, während ref ein Schlüsselwort ist, um auf einen Referenzparameter zu verweisen, der zum Übergeben von Daten von aufrufender Methode an aufgerufene Methode und zum Empfangen der Daten verwendet wird von der aufgerufenen Methode zur aufrufenden Methode.

INHALT

1. Übersicht und Schlüsseldifferenz
2. Was ist los in C #
3. Was ist ref in C #
4. Ähnlichkeiten zwischen out und ref in C #
5. Vergleich nebeneinander in C # in tabellarischer Form
6. Zusammenfassung

Was ist los in C #?

Die Syntax für eine Funktion oder eine Methode lautet wie folgt. Eine Methode verfügt über eine Reihe von Elementen wie Methodenname, Parameterliste, Rückgabetyp und Zugriffsbezeichner.

(Parameterliste)

// Anweisungen, die ausgeführt werden sollen

Jede Methode hat eine eindeutige Methode, um die Funktion aufzurufen. Die ausführbaren Anweisungen befinden sich in geschweiften Klammern. Der Rückgabetyp gibt an, ob die Funktion einen Wert zurückgibt oder nicht. Wenn kein Rückgabetyp vorhanden ist, wird dies als ungültig bezeichnet. Der Zugriffsbezeichner wird verwendet, um den Zugriff auf die Methode in der Anwendung anzugeben. Die Parameter werden verwendet, um Daten zu empfangen oder an die Methode zu übergeben. Es kann auch Methoden ohne Parameter geben. Parameter können Werteparameter, Ausgabeparameter oder Referenzparameter sein.

Die Ausgabeparameter werden verwendet, um die Ergebnisse an die aufrufende Methode zurückzugeben. Dazu muss der Parameter mit dem Schlüsselwort out deklariert werden. Der Ausgabeparameter erstellt keinen neuen Speicherort. Im Allgemeinen gibt eine Methode einen Wert zurück. In C # ist es jedoch möglich, zwei Werte von einer Funktion mithilfe von Ausgabeparametern zurückzugeben. Siehe das untenstehende Programm.

Namespace application1

            öffentliche Klasse Berechnung

public void display (out int a, out int b)

int Wert = 5;

a = Wert;

b = Wert;

a = a * a;

b = b * b;

public static void main (String [] args)

int value1 = 10, value2 = 20;

Berechnungskal = neue Berechnung ();

cal.display (out value1, out value2);

Console.ReadLine ();

Die Anzeigefunktion wird aus der Hauptmethode aufgerufen. Wert1 und Wert zwei haben 10 und 20, werden jedoch nicht in die Methode übernommen. Der Wert von a ist 25 und der Wert von b ist ebenfalls 25 in der Funktion. Daher werden diese Werte zurückgegeben. Beim Drucken von value1 und value2 werden nicht 10 und 20 ausgegeben. Stattdessen werden 25 und 25 gedruckt. Mit dem Schlüsselwort out können mehrere Werte aus der Methode zurückgegeben werden.

Was ist ref in C #?

Beim Übergeben von Parametern nach Wert wird für jeden Parameter ein neuer Speicherort erstellt. Die vom Hauptprogramm gesendeten Aktualparameter ändern sich nicht. Stattdessen werden diese Werte an einen separaten Speicherort kopiert. Diese neuen variablen Kopien werden als formale Parameter bezeichnet. Siehe den Code unten.

Namespace application1

öffentliche Klasse Berechnung

public void swap (int x, int y)

int temp;

Temp = x;

x = y;

y = Temp;

public static void main (String [] args)

Berechnungskal = neue Berechnung ();

int p = 2;

int q = 3;

cal.swap (p, q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Gemäß dem obigen Programm verfügt die Berechnungsklasse über eine Methode swap (). Im Hauptprogramm wird ein Objekt vom Typ Berechnung angelegt. Es gibt zwei Werte wie p und q. Die Variable p hat den Wert 2 und die Variable q hat den Wert 3. Diese beiden Werte werden an die Swap-Methode übergeben. Bei der Swap-Methode wird der Wert 2 in die Variable x und der Wert 3 in die Variable y kopiert. Mit der temporären Variable werden die Werte ausgetauscht. Im Hauptprogramm werden beim Drucken von p und q die Werte nicht vertauscht. Der p-Wert ist immer noch 2 und der q-Wert ist 3. Auch bei der Swap-Methode werden die Werte ausgetauscht, sind jedoch nicht im Hauptprogramm enthalten.

Im Gegensatz zum Übergeben von Werten wie oben können Parameter als Referenz übergeben werden. Eine Referenzvariable ist eine Referenz auf den Speicherplatz. Es wird kein neuer Speicherplatz erstellt. Die Änderungen in der Methode spiegeln sich im Hauptprogramm wider. In C # werden die Referenzparameter mit dem Schlüsselwort ref referenziert. Siehe das untenstehende Programm.

Namespace application1

öffentliche Klasse Berechnung

public void swap (ref int x, ref int y)

int temp;

Temp = x;

x = y;

y = Temp;

public static void main (String [] args)

Berechnungskal = neue Berechnung ();

int p = 2;

int q = 3;

cal.swap (ref p, ref q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Gemäß dem obigen Programm hat die Klasse Berechnung die Swap-Methode. Im Hauptprogramm wird ein Objekt vom Typ Berechnung angelegt. Das sind zwei Variablen wie p und q. Die Variable p hat den Wert 2 und die Variable q hat den Wert 3. Anstatt Werte zu übergeben, wird der Verweis auf die Speicherplätze von p und q an die Methode übergeben. Diese Bezugsgrößen werden mit ref bezeichnet. Bei der Swap-Methode werden die Änderungen an den tatsächlichen Parametern vorgenommen, anstatt die Werte an einen neuen Ort zu kopieren. Beim Drucken der p- und q-Werte des Hauptprogramms werden die vertauschten Werte angegeben. Jetzt ist der p-Wert 3 und der q-Wert ist 2.

Was ist die Ähnlichkeit zwischen out und ref in C #?

  • Beide sind Schlüsselwörter, mit denen auf die Parameter einer Methode verwiesen wird.

Was ist der Unterschied zwischen out und ref in C #?

out vs ref in C #

Out ist ein Schlüsselwort in C #, mit dem auf einen Ausgabeparameter verwiesen wird. Es wird verwendet, um die Ergebnisse einer aufgerufenen Methode an den Aufruf der Methode zu übergeben. Der ref ist ein Schlüsselwort in C #, mit dem auf einen Referenzparameter verwiesen wird. Es wird verwendet, um Daten von der aufrufenden Methode an die aufgerufene Methode zu übergeben und um Daten von der aufgerufenen Methode an die aufrufende Methode zurückzugeben.
Funktionalität
Wenn Sie das Schlüsselwort out verwenden, können die Daten von der aufrufenden Methode an die aufgerufene Methode übergeben werden. Diese Daten werden jedoch verworfen. Es wird verwendet, um das Ergebnis von der aufgerufenen Methode an die aufrufende Methode zu übergeben. Bei Verwendung des Schlüsselworts ref werden die Daten von der aufrufenden Methode an die aufgerufene Methode übergeben und die manipulierten Daten werden an die aufrufende Methode zurückgegeben.
Weitergabe von Daten
Wenn Sie das Schlüsselwort out verwenden, werden die Daten auf eine Art, eine aufgerufene Methode, an die aufrufende Methode übergeben. Bei Verwendung des Schlüsselworts ref werden die Daten auf zwei Arten übergeben, nämlich von der aufrufenden Methode zur aufgerufenen Methode und von der aufgerufenen Methode zur aufrufenden Methode.

Zusammenfassung - out vs ref in C # 

Wenn Sie eine Methode aufrufen, müssen Sie möglicherweise die Werte an die Methode übergeben und die Ergebnisse aus der Methode abrufen. C # hat verschiedene Parameter, um dies zu erreichen. Die Werteparameter werden verwendet, um Parameter nach Wert in die Methode zu übergeben. Die Referenzparameter werden verwendet, um Parameter per Referenz an die Methode zu übergeben. Die Ausgabeparameter werden verwendet, um das Ergebnis von der Methode zurückzugeben. In C # wird das out-Schlüsselwort für Ausgabeparameter und das ref-Schlüsselwort zum Referenzieren von Parametern verwendet. Der Unterschied zwischen out und ref in C # besteht darin, dass out ein Schlüsselwort ist, das verwendet wird, um einen Ausgabeparameter zu referenzieren, der verwendet wird, um Ergebnisse von einer aufgerufenen Methode an eine aufrufende Methode zu übergeben, während ref ein Schlüsselwort ist, um auf einen Referenzparameter zu verweisen, der zum Weitergeben von Daten verwendet wird Aufrufende Methode für die aufgerufene Methode und zum Empfangen der Daten von der aufgerufenen Methode an die aufrufende Methode.

Laden Sie das PDF von out vs ref in C # herunter.

Sie können die PDF-Version dieses Artikels herunterladen und gemäß Zitatvermerk für Offline-Zwecke verwenden. Laden Sie die PDF-Version hier herunter: Unterschied zwischen Out und Ref in C #

Referenz:

1.Tutorialspoint.com. "C # -Methoden".  Die Stelle. Hier verfügbar 
2.dnfvideo. C # Out-Parameter Vs REF-Parameter, Videos zur Vorbereitung von .NET-Interviews, 28. September 2015. Hier verfügbar  

Bildhöflichkeit:

1.'C sharp'By Mothmolevna - Eigene Arbeit, (Public Domain) via Commons Wikimedia