Heim >Backend-Entwicklung >C++ >Wie werden Arrays in C# an Methoden übergeben?
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!