Referenz- und Wert-Typen: Was ist der Unterschied in .NET?

Das folgende einfache Beispiel demonstriert die Verwendung von Referenz-Typen mithilfe des Schlüsselworts new. Hier kommt eine einfache Person-Klasse zum Einsatz. Sie enthält Vorname und Nachname zusammen mit einem Titel. Zwei Methoden, überladene SwapPeople, finden Verwendung, um Instanzen der Klasse zu manipulieren.

Das Beispiel illustriert außerdem ein Feature des .NET-Frameworks und dessen Fähigkeit, nahtlos zwischen Referenz- und Wert-Typen zu wechseln. Der Compiler wechselt im Hintergrund häufig automatisch zwischen den beiden Typen. Diese Vorgänge nennt man Boxing und Unboxing. Das Konzept wird in der SwapValue-Methode demonstriert.

Jede Methode tauscht die Objekte aus, indem sie einander mittels eines temporären Objekts zugewiesen werden. Die erste Methode erwartet zwei Person-Objekte, die sie als Referenz erhält. Es ist zu beachten, dass das Schlüsselwort ref sowohl in der Methodensignatur als auch beim eigentlichen Aufruf der Methode auftaucht. Die zweite Methode benutzt ref nicht. Somit werden die eigentlichen Objekte übergeben.

Die erste Methode tauscht die Objekte aus, und der Tausch wird über die Referenzen auch außerhalb des Gültigkeitsbereichs der Methode sichtbar. Die zweite Methode tauscht ebenfalls die Objekte, was aber nur innerhalb der Methode zu erkennen ist, da die tatsächlichen Objekte verwendet werden. Jede Methode gebraucht eine Instanz der Person-Klasse namens Temp. Sie wird einem der Objekte zugewiesen, die zuvor der Methode übergeben wurden. Sie übernimmt aber nicht die Werte des Objekts. Vielmehr verweist sie auf die Speicherstelle, die das Objekt enthält.

Die dritte Methode tauscht zwei Wert-Typen (Ganzzahlen) durch Referenzen. Per Boxing konvertiert sie diese in Referenz-Typen. Dadurch werden die Änderungen ebenfalls außerhalb der Methode sichtbar. Die letzte Methode verwendet keine Referenzen. Die Werte gehen in die Methode ein, ohne erkennbare Anzeichen außerhalb der Methode.

Dies erzeugt die folgende Ausgabe:

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Lags beim Online-Gaming? DSL-Vergleich und andere Tipps schaffen Abhilfe

Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…

2 Tagen ago

GenKI-Fortbildung immer noch Mangelware

Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…

2 Tagen ago

Netzwerk-Portfolio für das KI-Zeitalter

Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…

2 Tagen ago

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

2 Tagen ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

2 Tagen ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

3 Tagen ago