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?

Jan 06, 2025 pm 09:07 PM

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert? Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert? Mar 03, 2025 pm 05:52 PM

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut GULC: C -Bibliothek von Grund auf neu gebaut Mar 03, 2025 pm 05:46 PM

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte Mar 03, 2025 pm 05:53 PM

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die? Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die? Mar 03, 2025 pm 05:53 PM

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher? Wo ist der Rückgabewert der C -Sprachfunktion im Speicher? Mar 03, 2025 pm 05:51 PM

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe eindeutiger Gebrauch und Phrasenfreigabe Mar 03, 2025 pm 05:51 PM

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient? Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient? Mar 12, 2025 pm 04:52 PM

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)? Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)? Mar 12, 2025 pm 04:50 PM

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

See all articles