Heim > Backend-Entwicklung > C++ > Wie kann C# übertragen von Objekten an Methoden: Referenz oder Wert?

Wie kann C# übertragen von Objekten an Methoden: Referenz oder Wert?

Linda Hamilton
Freigeben: 2025-01-31 00:31:09
Original
256 Leute haben es durchsucht

How Does C# Handle Passing Objects to Methods: Reference or Value?

In -tiefter Diskussion der Objektübertragung in C#: Referenz und Wert

In C#war das Übertragungsobjekt für die Methode schon immer ein grundlegendes Konzept. Es wird allgemein angenommen, dass der nicht -Original -Typ mit Referenz übergeben wird.

Es wird jedoch eine Ausnahme angezeigt: Wenn das System des Systems.

die Wahrheit enthüllen: Wertübertragung und Referenzübertragung

Um dieses Phänomen zu verstehen, müssen wir die wahre Natur des vom Objekts in C#übertragenen Objekts klären. Das Objekt selbst wird nicht übertragen; Für den Referenztyp ist dieser Wert eine Referenz auf das tatsächliche Objekt, das Änderungen am zugrunde liegenden Objekt in der Anrufpartei ermöglicht.

Die subtile Differenz zwischen der Wertübertragung und der Referenzübertragung

verwendet c# "Wertübertragung" für alle Typen (einschließlich Referenztypen). Dies bedeutet, dass die Kopie des Objekts als Anfangswert des Parameters übergeben wird. Ändern des Parameterwerts wirkt sich nicht auf das ursprüngliche Objekt aus. Um die Attributwerte des Objekts in der Methode zu ändern, kann "Referenzübertragung" verwendet werden, indem Schlüsselwörter in der Parameteranweisung angegeben oder ref. In diesem Fall bezieht sich der Parameter effektiv auf die gleiche Speicherposition wie der Parameter, und die Änderungen an den Parametern sind im Aufruf sichtbar.

Beispielcode:

Schlussfolgerung Die Konzepte der "Wertübertragung" und "Referenzübertragung" in

c# unterscheiden sich von ihrem traditionellen Verständnis. Im Gegensatz dazu werden die Werte des Parameters entweder als Kopie (Werttyp) oder Referenz (Referenztyp) übertragen. Um den Attributwert des Objekts in der Methode zu ändern, können Sie die Schlüsselwörter für Out- oder REF als Referenz und Pass verwenden.
<code class="language-csharp">public void Foo(Image image) // 默认:值传递
{
    image = Image.FromStream(...); // 此更改调用方将看不到。
}

public void Foo(ref Image image) // 引用传递
{
    image = Image.FromStream(...); // 此更改对调用方可见。
}

public void Foo(Image image) // 对现有对象进行更改
{
    image.RotateFlip(...); // 此更改对调用方可见。
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann C# übertragen von Objekten an Methoden: Referenz oder Wert?. 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