Heim >Backend-Entwicklung >C++ >Referenz gegen Werttypen in C#: Was ist der Unterschied?

Referenz gegen Werttypen in C#: Was ist der Unterschied?

Susan Sarandon
Susan SarandonOriginal
2025-02-02 10:01:09853Durchsuche

Reference vs. Value Types in C#: What's the Difference?

im Depetenverständnis des Referenztyps und des Werttyps in C#

C# Programmierung, das Verständnis der Differenz zwischen Referenztyp und Werttyp ist sehr wichtig. Obwohl beide Daten speichern, sind ihr Verhalten und ihre Verwendung sehr unterschiedlich.

Zitattyp

Zitattypen c# sind nicht -grasische Typen wie Schnittstellen, Provision und sogar angepasste Klassen. Sie haben Verweise auf Typinstanzen, nicht auf den tatsächlichen Wert selbst. Dies bedeutet, dass zwei Variablen desselben Referenztyps auf das gleiche zugrunde liegende Objekt verweisen können.

Werttyp

Andererseits speichern der Werttyp wie Ganzzahl, Boolesche Wert und schwebende Punktzahlen ihre Werte direkt. Wenn die Variable des Werttyps einer anderen Variablen zugewiesen wird, wird eine vollständige Kopie erstellt. Die Änderung einer Variablen wirkt sich nicht auf die andere Variable aus. Hauptunterschiede

Der Hauptunterschied zwischen dem Zitattyp und dem Werttyp in der folgenden Tabelle:

Tatsächliche Beispiele

Betrachten Sie den folgenden Code:
特性 引用类型 值类型
内存地址 实际数据
复制行为 仅复制引用 复制整个值
赋值 分配不同的地址 分配相同的值
标识 对象可以共享标识 对象具有唯一标识
空值 可以为空 不能为空(可空类型除外)

In diesem Beispiel ist Nummer1 ein Werttyp, sodass die Kopie des Wertes Number2 zugewiesen wird. Die Änderung der Nummer1 wirkt sich nicht auf Nummer2 aus, da es sich um zwei unabhängige Variablen mit jedem Selbstwert handelt.

Schauen wir uns ein Beispiel für den Referenztyp an:

<code class="language-csharp">int number1 = 5;
int number2 = number1;

// 修改 number1
number1++;

// number2 保持不变
Console.WriteLine(number2); // 输出:5</code>
In diesem Fall ist Person ein Referenztyp, also verweisen Person1 und Person2 auf dasselbe Objekt. Die Änderung der Person1 ändert das zugrunde liegende Objekt, das persönlich und Person2 reflektiert wird.

Das obige ist der detaillierte Inhalt vonReferenz gegen Werttypen in C#: Was ist der Unterschied?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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