Heim >Backend-Entwicklung >C++ >Wie werden Arrays in C# an Methoden übergeben?

Wie werden Arrays in C# an Methoden übergeben?

Linda Hamilton
Linda HamiltonOriginal
2025-01-10 10:47:41141Durchsuche

How Are Arrays Passed to Methods in C#?

Umfassendes Verständnis der Array-Referenzübergabe in C#

In C# unterscheiden sich Arrays von grundlegenden Datentypen. Sie sind Referenztypen. Dies wirft die Frage auf: Wie werden Arrays an Methoden übergeben? Wertübergabe oder Referenz?

Wertübergabe

Standardmäßig werden Array-Referenzen als Wert übergeben. Dies bedeutet, dass eine Kopie der Referenz erstellt und an die Methode übergeben wird. Änderungen, die am Array-Inhalt innerhalb der Methode vorgenommen werden, sind für den aufrufenden Code sichtbar, aber etwaige Neuzuweisungen am Array selbst werden nicht an den Aufrufer zurückgegeben.

Übergabe als Referenz

Um die Referenz selbst zu ändern, können Sie den Modifikator ref verwenden. Durch die Übergabe eines Arrays als Referenz kann der Aufrufer alle Änderungen an der Referenz sehen, einschließlich Neuzuweisungen.

Beispiel

Der folgende Code veranschaulicht den Unterschied zwischen der Wertübergabe und der Referenzübergabe:

<code class="language-csharp">void Foo(int[] data) {
    data[0] = 1; // 调用方可见此更改
}
void Bar(ref int[] data) {
    data = new int[20]; // 调用方可见此更改
}</code>

Beim Aufruf von Foo wird eine Kopie der Referenz übergeben. Das Ändern des Inhalts des Arrays innerhalb von Foo wird im aufrufenden Code sichtbar. Neuzuweisungen zu Arrays innerhalb von Foo werden vom Aufrufer jedoch nicht gesehen.

Im Gegensatz dazu wird beim Aufruf von ref mit dem Modifikator Bar die Referenz selbst übergeben. Alle Änderungen an der Referenz, einschließlich Neuzuweisungen, werden im aufrufenden Code sichtbar.

Das obige ist der detaillierte Inhalt vonWie werden Arrays in C# an Methoden übergeben?. 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