Heim >Backend-Entwicklung >C++ >C# „ref' vs. „out': Wann sollte welches Schlüsselwort verwendet werden?

C# „ref' vs. „out': Wann sollte welches Schlüsselwort verwendet werden?

Barbara Streisand
Barbara StreisandOriginal
2025-01-24 12:08:10284Durchsuche

C# `ref` vs. `out`: When to Use Which Keyword?

c# im

und Die Unterschiede und Anwendungsszenarien von Schlüsselwörtern ref out In C#werden die Schlüsselwörter

und

verwendet, um das Übertragungsobjekt an die Methode oder Funktion entsprechend dem Referenzobjekt zu übergeben. Sie ermöglichen dem Anrufer, das Objekt direkt in der Anrufmethode zu bedienen. ref out Szene verwenden:

und Ermöglichen die Änderung der Änderung der an die Methode übergebenen Objekte. Der Schlüsselunterschied ist die Initialisierungsanforderungen:

ref : out

Der Anrufer muss das Objekt initialisieren, bevor das Objekt an die Methode weitergegeben wird. ref Methoden können in beide Richtungen auf Objekte zugreifen und ihren Status ändern.

    Alle in der Methode vorgenommenen Änderungen werden im Kontext des Anrufers widerspiegelt.
  • :

Die Call Party muss das Objekt nicht initialisieren, bevor die Methode aufgerufen wird. out Methode initialisiert Objekte in seinem Subjekt.

Methoden können nur unidirektional auf Objekte zugreifen und sie zuweisen.
  • Nach dem Anruf erhält die Call Party das initialisierte Objekt.
  • Welche Schlüsselwörter wählen:
  • Wählen Sie Situation:

Das Objekt wird vor der Methode initialisiert und muss geändert werden. Der ursprüngliche Zustand des Objekts ist für die Call Party wichtig.

ref Wählen Sie Situation:

  • Das Objekt muss nicht vor der Methode initialisiert werden.
  • Methoden sollten ein neues Objekt erstellen und zurückgeben.
Der ursprüngliche Zustand des Objekts wird für den Anrufer nicht benötigt.

out

Beispiel:
  • Berücksichtigung der folgenden Änderung
  • Die Methode von
  • Attributen des Objekts:
Das vor -initialisierte

-Objekt dieser Methode führt zu einer Änderung der -attribute. Andererseits verursacht das Objekt, das leer oder unbegrenzt überträgt, Laufzeitfehler.

Verwenden Sie

: MyClass Count

In diesem Fall wird diese Methode erstellt und eine neue
<code class="language-csharp">public void IncrementCount(ref MyClass myClass)
{
    myClass.Count++;
}</code>
-Schunierung für

Parameter zugewiesen. Das neue Objekt kehrt zur Anrufpartei zurück, und der Anrufer hat ein initialisiertes Objekt in seinem lokalen Kontext. myClass

Das obige ist der detaillierte Inhalt vonC# „ref' vs. „out': Wann sollte welches Schlüsselwort verwendet werden?. 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