Wenn Sie C# lernen, werden Sie immer auf einige Sprachbefehle stoßen, die eine ähnliche, aber unterschiedliche Verwendung haben. Heute werden wir den Unterschied zwischen out und ref in C# besprechen. Im Folgenden fasse ich den Unterschied zwischen out und ref zusammen. Apache PHP MySQL
Beide werden über die Adresse übergeben und die Werte der ursprünglichen Parameter werden nach der Verwendung geändert.
ref kann den Wert des Parameters an die Funktion übergeben, aber out muss den Parameter löschen, was bedeutet, dass Sie keinen Wert von out übergeben können. Nachdem out eingegangen ist, ist der Wert des Parameters leer. Sie müssen also einmal initialisieren. Dies ist der Unterschied zwischen den beiden, oder wie einige Internetnutzer sagten, „ref“ bedeutet sowohl rein als auch raus, während „out“ nur rausgehen, aber nicht rein bedeutet.
ref (C#-Referenz) Das Schlüsselwort
ref bewirkt, dass Parameter als Referenz übergeben werden. Der Effekt besteht darin, dass bei der Rückgabe der Kontrolle an die aufrufende Methode alle Änderungen an den Parametern in der Methode in der Variablen widergespiegelt werden. Um Ref-Parameter zu verwenden, müssen sowohl die Methodendefinition als auch der Methodenaufruf explizit das Schlüsselwort ref verwenden.
Zum Beispiel:
2 3
4
|
Klasse RefExample
{
static void Method( ref int i)
{
i = 44;
}
statisch void Main()
{
int val = 0;
Methode( ref val);
// val ist jetzt 44
}
}
|
1 2 3 4 5 6 7 |
class CS0663_Example
{
// Compiler-Fehler CS0663: „Überladen kann nicht definiert werden
// Methoden, die sich nur bei ref und out unterscheiden".
public void SampleMethod( ref int i) { }
public void SampleMethod( out int i) { }
}
|
1 2 3 4 5 |
class RefOutOverloadExample
{
public void SampleMethod( int i) { }
public void SampleMethod( ref int i) { }
}
|
out (C#-Referenz) Das Schlüsselwort
out bewirkt, dass Parameter als Referenz übergeben werden. Dies ähnelt dem Schlüsselwort ref, außer dass ref erfordert, dass die Variable vor der Übergabe initialisiert werden muss. Um Out-Parameter zu verwenden, müssen sowohl die Methodendefinition als auch der Methodenaufruf explizit das Out-Schlüsselwort verwenden.
2 3
4
|
class OutExample
{
static void Method( out int i)
{
i = 44;
}
statisch void Main()
{
int value;
Methode( out wert);
// Wert ist jetzt 44
}
}
|
1 2 3 4 5 6 7 |
Klasse CS0663_Example
{
// Compilerfehler CS0663: „Überladen kann nicht definiert werden
// Methoden, die sich nur bei ref und out unterscheiden".
public void SampleMethod( out int i) { }
public void SampleMethod( ref int i) { }
}
|
class
RefOutOverloadExample
{
public
void
SampleMethod(
int
i) { }
public
void
SampleMethod(
out
int
i) { }
}
Das Folgende habe ich basierend auf meiner Erfahrung zusammengestellt:
Unterschied
Der Unterschied zwischen ref und out In C# können Parameter als Wert oder per übergeben werden Referenz . Durch die Übergabe von Parametern als Referenz können Funktionsmitglieder den Wert des Parameters ändern und diese Änderung beibehalten. Um Parameter per Referenz zu übergeben, verwenden Sie das Schlüsselwort ref oder out. Sowohl die Schlüsselwörter ref als auch out können ähnliche Funktionen bereitstellen und funktionieren ähnlich wie Zeigervariablen in C. Der Unterschied zwischen ihnen ist:
1. Bei Verwendung von Ref-Typ-Parametern müssen die übergebenen Parameter zuerst initialisiert werden. Für out muss es in der Methode initialisiert werden.
2. Wenn Sie ref und out verwenden, müssen Sie das Schlüsselwort Ref oder Out in den Parametern der Methode und bei der Ausführung der Methode hinzufügen. um das Spiel zu befriedigen.
3. out eignet sich für den Einsatz, bei dem mehrere Rückgabewerte erneut ausgeführt werden müssen, während ref verwendet wird, wenn die aufgerufene Methode die Referenz des Aufrufers ändern muss.
Das Methodenparameter-Schlüsselwort out für einen Methodenparameter bewirkt, dass die Methodenreferenz an dieselbe Variable der Methode übergeben wird. Alle an den Parametern in der Methode vorgenommenen Änderungen werden in dieser Variablen widergespiegelt, wenn die Steuerung an die aufrufende Methode zurückgegeben wird.
Das Deklarieren einer Out-Methode ist nützlich, wenn die Methode mehrere Werte zurückgeben soll. Methoden, die Out-Parameter verwenden, können dennoch einen Wert zurückgeben. Eine Methode kann mehr als einen Out-Parameter haben.
Um Out-Parameter zu verwenden, müssen die Parameter explizit als Out-Parameter an die Methode übergeben werden. Der Wert des Out-Parameters wird nicht an den Out-Parameter übergeben.
Variablen, die als Out-Parameter übergeben werden, müssen nicht initialisiert werden. Allerdings muss dem Out-Parameter ein Wert zugewiesen werden, bevor die Methode zurückkehrt.
Eigenschaften sind keine Variablen und können nicht als Out-Parameter übergeben werden.
Kurz gesagt, es lässt sich in einem Satz zusammenfassen: ref bedeutet sowohl rein als auch raus, während out nur rausgehen, aber nicht rein bedeutet.
Verwandte Artikel:
Betrachten Sie C, C++, C# durch statisches Lokal Variablen, Java, PHP-Funktionen
Das obige ist der detaillierte Inhalt vonWas halten Sie von out und ref in C#? Entdecken Sie die Unterschiede zwischen ihnen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!