Heim > Backend-Entwicklung > C++ > Ist ein Array von Werttypen (z. B. „int[]') ein Referenztyp oder ein Werttyp in C#?

Ist ein Array von Werttypen (z. B. „int[]') ein Referenztyp oder ein Werttyp in C#?

Linda Hamilton
Freigeben: 2025-01-12 08:33:43
Original
753 Leute haben es durchsucht

Is an Array of Value Types (e.g., `int[]`) a Reference Type or a Value Type in C#?

Ist int[] in C# ein Referenztyp oder ein Werttyp?

In C# sind grundlegende Datentypen wie int Werttypen. Sie werden direkt in Variablen gespeichert und ihre Werte werden kopiert, wenn sie an Methoden übergeben oder anderen Variablen zugewiesen werden.

Arrays von Werttypen verhalten sich jedoch anders. Auch wenn die Elemente des Arrays Werttypen sind, ist das Array selbst ein Referenztyp. Dies liegt daran, dass die Array-Referenz auf den Speicherort verweist, an dem die Array-Elemente gespeichert sind, und nicht auf die Elemente selbst.

Auswirkungen auf Funktionsaufrufe

Bei der Übergabe eines Arrays an eine Funktion ist es nicht erforderlich, den Modifikator ref oder out anzugeben, da Arrays standardmäßig als Referenz übergeben werden.

Funktionen, die ein Array empfangen, können nur auf eine Referenz auf das Array zugreifen, nicht auf die tatsächlichen Elemente. Wenn die Funktion Elemente ändert, werden diese Änderungen im ursprünglichen Array widergespiegelt.

Beispiel:

Bedenken Sie den folgenden Code:

<code class="language-csharp">int[] array = { 1, 2, 3 };
ModifyArray(array);
Console.WriteLine(array[0]); // 输出:4</code>
Nach dem Login kopieren

ModifyArrayDie Funktion ändert das erste Element des Arrays:

<code class="language-csharp">public static void ModifyArray(int[] arr)
{
    arr[0] = 4;
}</code>
Nach dem Login kopieren

Selbst wenn wir das Array als Wert übergeben (ohne den Modifikator ref), werden die in der Funktion vorgenommenen Änderungen im ursprünglichen Array widergespiegelt, da das Array ein Referenztyp ist.

Das obige ist der detaillierte Inhalt vonIst ein Array von Werttypen (z. B. „int[]') ein Referenztyp oder ein Werttyp in C#?. 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