C# Pass für Referenz

C# Pass für Referenz
Während Sie in einigen objektorientierten Programmierungen arbeiten, haben Sie möglicherweise das Konzept des Wertes ausprobiert, das von Referenz in den Codes übergeht, i, i.e. C, c++. Übergeben mit Referenzmitteln, um den Speicherort einer bestimmten Variablen anzugeben, ohne ihre Kopien zu erstellen. Die Referenzen werden höchstwahrscheinlich verwendet, um bestimmte Änderungen vorzunehmen und sie am ursprünglichen Speicherort ohne Probleme reflektieren zu lassen. Wir neigen dazu, das „&“ Charakter in objektorientierten Sprachen zu verwenden, um Pass-by-Referenzen durchzuführen.

In C#führen wir die Passionswerte per Referenz mit dem Schlüsselwort „Ref“ durch. Mal sehen, wie es funktioniert. Beginnend mit der Implementierung dieses Handbuchs müssen wir eine C# -Datei haben, um einige Programmiercodes zu erstellen. So weit, ist es gut; Wir haben Ubuntus "Touch" -Anfrage verwendet, um eine neue C# -Datei im aktuellen Arbeitsverzeichnis unseres Linux -Systems zu generieren.

Beispiel 01

Wir werden unser erstes Beispiel für diesen Code mit der C# -Programmstrukturdefinition beginnen. Also haben wir die C#geöffnet und eine Datei im integrierten Texteditor von Ubuntu 20 erstellt.04 und fügte die "System" -Bibliothek in der ersten Zeile hinzu. Diese Bibliothek ist die Haupteingabe- und Ausgabequelle innerhalb der C# -Codes. Ohne diese Bibliothek hat unser Code uns keine Nutzung, da er nicht so funktioniert, wie wir es wollen. Nach dem Hinzufügen der Bibliothek haben wir in diesem Code einen zufälligen Namespace „Referenz“ erstellt. Dieser Namespace ist benutzerdefiniert.

In diesem Programm haben wir auch eine neue benutzerdefinierte Klasse „Referenz“ erstellt, um unseren Code mit einer Implementierung zu initialisieren. Diese benutzerdefinierte "Referenz" -Klasse enthält insgesamt 2 Funktionen darin. Die erste Funktion ist die integrierte Main () -Funktion mit Rückgabetyp „statischer Leere“, die auch als Treiberfunktion unseres C# -Codes bezeichnet wird, ich.e. Die gesamte Ausführung beginnt damit. Die andere Funktion ist eine benutzerdefinierte zufällige Funktion mit dem Namen "Update" mit dem Rückgabetyp "Public Static Void".

Die Konsole.Die Funktion writeLine () ist hier, um den ursprünglichen Wert einer Variablen „N“ anzuzeigen, die ihre Parameter verwendet, wie unten im Bild gezeigt. Danach haben wir die Funktion „Aktualisierung“ von der Hauptabendungsvariablen „n“ als parametrischer Wert bezeichnet. Jetzt geht die Steuerung in die Funktion „Update“, die den Wert der Variablen „n“ als Referenz unter Verwendung des neuen Variablen "Val" des Ganzzahl -Typs nimmt. Diese Variable „Val“ multipliziert seinen übergebenen Wert „5“ mit der Haupt- () -Funktion mit „3“ und überschreibt in die Variable „Val“ überschreibt.

Hier gibt es keine Rückgaberklärung. Die Ausführung der Aktualisierungsfunktion wurde abgeschlossen und die Kontrolle ist zurück zur „Haupt“ -Funktion. Die Funktion main () führt ihre nächste Konsole aus.WriteLine () -Funktion zum Anzeigen des aktualisierten Werts von Variablen „N“ mit „N“ in seinen Parametern. Die Funktion main () und unser C# Code sind vollständig und bereit für die Verwendung. Sparen wir es durch Strg+S und beenden wir es zuerst mit Strg+x.

Nach dem Speichern der C# -Datei müssen wir diesen Code mit dem "MCS" -Kompiler des C# bereits in unserem Ubuntu 20 konfiguriert haben.04 System. Wir haben dies also getan, und die "EXE" -Datei für diesen kompilierten Code wurde automatisch an demselben Ort erstellt. Wir haben den Anweisungen zur Laufzeitausführung „Mono“ für C# -Codes verwendet. Es stellt sich heraus, dass der ursprüngliche Wert und der aktualisierte Wert gleich sind, ich.e. Bisher wurden keine Änderungen vorgenommen.

Schauen wir uns jetzt das Problem an. Wenn wir versuchen, den Wert der Variablen „n“ durch die Übergabe als Referenz zu aktualisieren, finden Sie nicht die Speicheradresse der ursprünglichen Variablen „N“. Stattdessen erstellte es ein anderes Replikatobjekt mit demselben Namen und Wert und übergab es an die Aktualisierungsfunktion. Änderungen am neuen Objekt beeinflussen somit keinen Einfluss auf den ursprünglichen Variablen -Wert „N“ -Wert.

Um dieses Problem zu vermeiden, hat das C# Framework das neue Schlüsselwort "Ref" entwickelt, um Werte als Verweise auf einen Funktionsparameter zu übergeben. Mit diesem Schlüsselwort „Ref“ wurde der ursprüngliche variable Speicherort anstelle der neuen Speicheradresse verwendet, i, i.e. Hinweis auf den Speicherort der ursprünglichen Variablen. Daher haben wir unseren Code aktualisiert und das Schlüsselwort 'Ref' verwendet, während wir die Variable „N“ als Verweis auf die Aktualisierungsfunktion übergeben haben. Dieses Schlüsselwort wurde in der Funktion main () verwendet, während der Funktionsaufruf in die Funktion „Aktualisieren“ und in den Funktionsparametern „update ()“ wie angezeigt.

Nachdem wir die aktualisierte C# -Datei zusammengestellt und gerade danach ausgeführt wurden, wurden wir mit der gezeigten Ausgabe präsentiert. Diesmal wurde der Wert "5" der Variablen "N" aufgrund der Verwendung des Schlüsselworts "Ref" auf "15" aktualisiert, um einen Wert als Referenz zu übergeben.

Beispiel 02

Schauen wir uns ein anderes Beispiel an, um den Austausch durchzuführen, indem Sie Werte in Parametern übergeben. Die Klasse „Test“ verwendet eine benutzerdefinierte „Swap“ -Funktion und die main () -Treiberfunktion. Die Ausführung wurde mit der Main () -Methode gestartet, bei der wir ein Objekt „T“ des Klassentests erstellt und zwei ganzzahlige Variablen, V1 und V2, mit ganzzahligen Werten-der Konsole initialisiert haben.Funktionsanweisungen writeLine () Zeigen Sie die Werte von Variablen V1 und V2 vor dem Swap an.

Danach wird die Swap -Funktion aufgerufen, indem Variablen V1 und V2 in ihren Parametern als Referenz bestanden. Das Schlüsselwort "Ref" wurde hier für beide Variablen verwendet. In der Implementierung der Funktion "Aktualisierung" haben wir auch das Schlüsselwort "Ref" für sowohl Variablen N1 als auch N2 verwendet, um die Werte durch Referenz zu übergeben. Um die Werte einer Variablen gegen eine andere auszutauschen, müssen wir einen dritten Wert haben, um dies auszuführen. Die neue Variable „V“ wurde in dieser Funktion initialisiert und nimmt den Wert der Variablen N1 als ersten Teil an. Der Wert von N2 wurde in variabler N1 überschrieben, und der Wert von variabler V wurde in variabler N2 gespeichert. Der Wert von Wert N1 mit N2 wurde hier durchgeführt. Die main () Funktionskonsole.Die Funktion writeLine () ist hier, um jetzt die neu ausgetauschten Werte von N1 und N2 anzuzeigen.

Nach der Zusammenstellung und Ausführung dieses Beispielcode haben wir die Werte von V1 und V2 als 14 und 7 vor dem Tausch erhalten. Nach dem Tausch stellt sich heraus, dass es das Gegenteil ist, ich.e. v1 = 7 und v2 = 14.

Wenn wir das Schlüsselwort „Ref“ aus dem Funktionsaufruf und der Funktionsdefinition der Funktion „Aktualisieren“ wie unten entfernen, wird der Austausch nicht durchgeführt.

Hier sehen Sie, dass die Ausgabe zeigt, dass die Werte von V1 und V2 auch nach der Verwendung der Swap -Funktion gleich sind.

Abschluss

In diesem Handbuch geht es darum, das Schlüsselwort "Ref" in C# zu verwenden, um die Passingwerte mit einer Referenz auszuführen. Diese Referenzierung wurde unter Verwendung des genauen Speicherorts bestimmter Variablen durchgeführt. Innerhalb dieses Handbuchs haben wir mit dem Schlüsselwort „Ref“ besprochen, um den ursprünglichen Wert einer Variablen zu aktualisieren, indem wir ihn mit einer gewissen Zahl multiplizieren und die Werte von zwei Variablen in zwei verschiedenen Beispielen austauschen. Dies wurde sehr reibungslos mit "Ref" durchgeführt.