Heim > Backend-Entwicklung > C++ > Wie wirkt sich das Schlüsselwort „ref' auf Referenztypvariablen in C# aus?

Wie wirkt sich das Schlüsselwort „ref' auf Referenztypvariablen in C# aus?

Patricia Arquette
Freigeben: 2025-01-06 21:07:48
Original
855 Leute haben es durchsucht

How Does the `ref` Keyword Affect Reference-Type Variables in C#?

Nutzung von „ref“ für Referenztyp-Variablen in C#

In C# übergeben Referenztyp-Variablen, wie z. B. Klassen, von Natur aus a Verweis auf ihre Speicheradresse, wenn sie als Methodenparameter übergeben werden, anstatt den gesamten Wert zu kopieren. Das Schlüsselwort „ref“ führt dieses Verhalten jedoch noch einen Schritt weiter und ermöglicht eindeutige Manipulationen mit Variablen vom Referenztyp.

Unterscheidung von ref- und Nicht-ref-Parametern vom Referenztyp

Bei der Übergabe einer Referenztypvariablen an eine Methode ohne das Schlüsselwort „ref“, wie im Beispiel zu sehen:

void Bar(Foo y) {
    y.Name = "2";
}
Nach dem Login kopieren

Der Parameter „y“ erhält eine Referenz auf dasselbe Objekt wie die ursprüngliche Variable. Allerdings werden alle innerhalb der Methode an „y“ vorgenommenen Änderungen nicht in der Originalvariablen widergespiegelt.

Andererseits wird das Schlüsselwort „ref“ verwendet, wie in:

void Bar(ref Foo y) {
    y.Name = "2";
}
Nach dem Login kopieren

Stellt eine Verbindung zwischen der Originalvariablen und dem Parameter „y“ her. „y“ verweist nicht nur auf dasselbe Objekt, sondern alle an „y“ vorgenommenen Änderungen wirken sich direkt auf die ursprüngliche Variable aus.

Ändern von Referenzzeigern

Ein einzigartiger Vorteil von Die Verwendung von „ref“ mit Variablen vom Referenztyp liegt in der Möglichkeit, die Referenz selbst zu ändern. Dies bedeutet, dass Sie die ursprüngliche Variable im Wesentlichen neu zuweisen können, um auf ein anderes Objekt zu verweisen. Zum Beispiel:

Foo foo = new Foo("1");

void Bar(ref Foo y)
{
    y = new Foo("2");
}

Bar(ref foo);
// foo.Name == "2"
Nach dem Login kopieren

Hier ändert die Methode „Bar“ den Verweis von „foo“, sodass er auf ein neues Objekt zeigt, dessen Eigenschaft „Name“ auf „2“ gesetzt ist. Folglich verweist die ursprüngliche Variable „foo“ nun auf das neu erstellte Objekt mit der geänderten Eigenschaft.

Daher gewährt das Schlüsselwort „ref“ mit Variablen vom Referenztyp Entwicklern die Möglichkeit, beide Eigenschaften des referenzierten Objekts zu ändern und ändern Sie die Referenz selbst, um mehr Flexibilität und Kontrolle über das variable Verhalten innerhalb von Methoden zu bieten.

Das obige ist der detaillierte Inhalt vonWie wirkt sich das Schlüsselwort „ref' auf Referenztypvariablen in C# aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage