Heim >Backend-Entwicklung >C++ >Wert vs. Referenz: Wie übergibt C# Objekte an Methoden?
c# Methode Parameterübertragung: Werttyp und Referenztyp
In c#wurde das Verhalten von nicht -original -Typvariablen durch Referenz weithin akzeptiert. Einige Entwickler können jedoch Unterschiede treffen, wenn sie sich mit Objekten wie System.Drawing.image befassen. Das Verständnis der Details der Objektübertragung ist wichtig, um Unfälle zu vermeiden.
standardmäßig wird das Objekt nicht direkt an die Methode übergeben. Stattdessen werden die entsprechenden Werte bewertet und die anfänglichen Parameterwerte als Parameter übergeben. Für den Referenztyp (nicht -originaler Typ) repräsentiert dieser Wert die Referenz auf das tatsächliche Objekt oder Null. Daher kann jede Änderung des Objekts innerhalb der Methode für den Anrufer sichtbar sein.
Es ist jedoch wichtig zu beachten, dass der Wert des Parameters in ein anderes anderes Objekt geändert wird.
Um die Semantik gemäß Referenz zu übertragen, müssen die Schlüsselwörter
oder verwendet werden, unabhängig davon, was der Parametertyp ist. Durch Angeben dieser Schlüsselwörter werden die Parameter selbst gemäß Bezug genommen, um sicherzustellen, dass die Änderungen an den Parametern zu sehen sind. out
ref
Folgendes ist ein vereinfachtes Beispiel:
Im Gegenteil ist die Änderung der Daten im Referenzobjekt beim Übergeben des Objekts für den Anrufer sichtbar.
<code class="language-csharp">public void Foo(Image image) // 按值传递 { // 对参数的更改对调用者不可见。 image = Image.FromStream(...); } public void Foo(ref Image image) // 按引用传递 { // 对参数的更改对调用者可见。 image = Image.FromStream(...); }</code>
Eine umfassendere Erklärung dieses Themas finden Sie im detaillierten Artikel im Link, der durch die angegebene Antwort bereitgestellt wird.
Das obige ist der detaillierte Inhalt vonWert vs. Referenz: Wie übergibt C# Objekte an Methoden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!