Heim > Backend-Entwicklung > C++ > Wann und warum wird „ref' mit Referenztypen in C# verwendet?

Wann und warum wird „ref' mit Referenztypen in C# verwendet?

Patricia Arquette
Freigeben: 2025-01-06 20:49:44
Original
846 Leute haben es durchsucht

When and Why Use

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

C#-Programmierer stoßen häufig auf das Schlüsselwort „ref“, wenn sie mit Referenzen arbeiten -Typ-Variablen, wie zum Beispiel Klassen. Während das Verhalten von „ref“ mit Werttypen bekannt ist, ist sein Zweck für Referenztypen möglicherweise weniger klar.

Hintergrund

Bei der Übergabe eines Werts -type nach Wert ohne das Schlüsselwort „ref“ wird eine Kopie der Variablen erstellt und an die Methode übergeben. Allerdings beinhaltet die Übergabe von Referenztypen ohne „ref“ bereits die Referenzierung der Variablen selbst.

Verwendung von „ref“ mit Referenztypen

Also, was ist der Vorteil der Verwendung von „ref“ mit Referenztypen? Der Hauptunterschied liegt in der Möglichkeit, die Referenz der Variablen neu zuzuweisen.

Beispiel

Betrachten Sie das folgende Beispiel:

var x = new Foo();

// Without "ref"
void Bar(Foo y)
{
    y.Name = "2";
}

// With "ref"
void Bar(ref Foo y)
{
    y.Name = "2";
}

// Test
Bar(x);
Nach dem Login kopieren

Im ersten Fall , y ist ein Verweis auf x und durch Ändern von y.Name wird das Objekt aktualisiert. Im zweiten Fall können wir jedoch mit „ref“ etwas Einzigartiges tun.

Innerhalb der Bar-Methode können wir mit „ref“ die Referenz, auf die y zeigt, neu zuweisen. Zum Beispiel:

Foo foo = new Foo("1");

// Reassign reference via "ref"
void Bar(ref Foo y)
{
    y = new Foo("2");
}

Bar(ref foo);

// After Bar() call
Console.WriteLine(foo.Name);
Nach dem Login kopieren

Hier weist der Aufruf von Bar(ref foo) foo effektiv eine neue Foo-Instanz zu. Das bedeutet, dass die ursprüngliche foo-Variable nun auf ein anderes Objekt mit dem Namen „2“ zeigt.

Fazit

Daher liefert „ref“ mit Referenztypen das Flexibilität, die Objektreferenz neu zuzuweisen, was erweiterte Szenarien ermöglicht, die sonst nicht möglich wären.

Das obige ist der detaillierte Inhalt vonWann und warum wird „ref' mit Referenztypen in C# verwendet?. 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