C#-Out-Parameter

WBOY
WBOYOriginal
2024-09-03 15:29:34857Durchsuche

„out“ ist ein Schlüsselwort in C#, das verwendet wird, um Argumente als Referenztyp an eine Methode zu übergeben. Variablen, die als Out-Parameter an eine Methode übergeben werden, müssen nicht deklariert oder initialisiert werden, bevor sie an den Methodenaufruf übergeben werden. Die aufgerufene Methode muss den Variablen der Out-Parameter Werte zuweisen, bevor das Steuerelement die aufgerufene Methode verlässt und bevor die aufgerufene Methode einen Wert an die aufrufende Methode zurückgibt. Es ist möglich, mehrere Parameter an eine Methode zu übergeben und die Methode gibt mehrere Werte zurück.

Syntax mit Erklärung:

Beim Aufrufen der Methode mit dem Out-Parameter lautet die Syntax wie folgt:

Method_name(out data_type variable_name);

Hier ist Methodenname ein beliebiger benutzerdefinierter Name, der der Methode gegeben wird, „out“ ist das Schlüsselwort, mit dem ausgedrückt wird, dass die an die Methode übergebene Variable ein Out-Parameter ist, Datentyp kann ein beliebiger Datentyp der Variablen sein und Variablenname ist der benutzerdefinierte Name der Variablen.

Die Syntax für die aufzurufende Methode lautet wie folgt:

access_specifier return_type Method_name(out data_type variable_name);

Hier kann access_specifier ein beliebiger Zugriffsspezifizierer unter den fünf von C# unterstützten Zugriffsspezifizierern sein, z. B. öffentlich oder privat. Dann ist return_type der Datentyp, den diese Methode zurückgibt, gefolgt vom Methodennamen und der „out“-Parameterliste.

Wie funktioniert der Parameter „out“ in C#?

In C# funktioniert das Schlüsselwort „out“ ähnlich wie die Schlüsselwörter „ref“ und „in“. Der Unterschied zwischen den Parametern „out“ und „ref“ besteht darin, dass die Parametervariablen „out“ nicht initialisiert werden müssen, bevor sie an eine Methode übergeben werden. Der Benutzer kann die Parametervariable „out“ in der Argumentliste der Methode deklarieren Anstatt es separat zu deklarieren, wird dies als Inline-Deklaration des „out“-Parameters bezeichnet, während die „ref“-Parametervariablen initialisiert werden müssen, bevor sie an eine Methode übergeben werden. Auf die inline deklarierten „out“-Parameter kann im selben Codeblock zugegriffen werden.

Beispiel #1

Code:

using System;
namespace ConsoleApp4
{
public class Program
{
public static void Main(string[] args)
{
//inline declaration of 'out' parameter
Display(out int num);
Console.WriteLine("Value of variable 'num': {0}", num);
Console.ReadLine();
}
public static void Display(out int a)
{
//need to assign value
a = 10;
a += a;
}
}
}

Ausgabe:

C#-Out-Parameter

  • Der Unterschied zwischen den Schlüsselwörtern „out“ und „in“ besteht darin, dass die Parameterwerte „out“ innerhalb der aufgerufenen Methode geändert werden können, während die Parameterwerte „in“ nicht innerhalb der aufgerufenen Methode geändert werden können.
  • Eine Methode kann mehr als einen „out“-Parameter haben, wie zum Beispiel: Display(out x, out y);
  • Um mit „out“-Parametern zu arbeiten, muss der Benutzer das Schlüsselwort „out“ explizit in der Methodendefinition und auch in der aufrufenden Methode verwenden. Gleichzeitig ist es nicht notwendig, dass die Namen der „out“-Parameter in der Methodendefinition und im Aufruf identisch sind.
  • Die „out“-Parameter werden als Referenz an eine Methode übergeben, daher erstellen sie keinen neuen Speicherort im Speicher und verwenden denselben Speicherort, der von den variablen Argumenten beim Methodenaufruf belegt wird. Da die Methode, die „out“-Parameter verwendet, mehrere Werte zurückgeben kann, hilft es dem Benutzer, mehrere verarbeitete Werte von der aufgerufenen Methode zu erhalten. Bevor die Methode jedoch einen Wert an die aufrufende Methode zurückgibt, müssen den „out“-Parametern einige Werte in der Methode zugewiesen werden.
  • Wir können nicht in allen Arten von Methoden mit „out“-Parametern arbeiten, so wie wir nicht in asynchronen Methoden, die wir mit dem Modifikator „async“ definieren, „out“-Parameter verwenden können, und wir können auch nicht in „Iterator“-Methoden „out“-Parameter verwenden bestehen aus der Aussage „Yield Return“ oder „Yield Break“. Da Eigenschaften keine Variablen sind, können wir sie nicht als „Out“-Parameter an eine Methode übergeben.
  • Der Parameter „out“ kann mithilfe eines generischen Typs definiert werden, um anzugeben, dass der Typparameter kovariant ist. Darüber hinaus wird der Parameter „out“ in den TryParse()-Methoden für verschiedene Datentypen in C# verwendet. Die TryParse()-Methode gibt einen booleschen Wert zurück, der Erfolg oder Misserfolg angibt. Bei Erfolg wird das Ergebnis durch den Parameter „out“ angegeben.

Beispiel #2

Code:

using System;
namespace ConsoleApp4
{
public class Program
{
public static void Main(string[] args)
{
string str = "123456";
int num;
//if ‘canParse’ is true; the result of conversion will be stored in ‘num’
bool canParse = Int32.TryParse(str, out num);
if (canParse)
Console.WriteLine(num);
else
Console.WriteLine("Could not be parsed.");
Console.ReadLine();
}
}
}

Ausgabe:

C#-Out-Parameter

Beispiele für C#-Out-Parameter

Im Folgenden finden Sie Beispiele für C#-Out-Parameter:

Beispiel #1

Beispiel zeigt, wie mehrere „Out“-Parameter an eine Methode übergeben werden und die Methode dann mehrere Werte zurückgibt.

Code:

using System;
namespace ConsoleApp4
{
public class Program
{
public static void Main()
{
//declaring variables without assigning values
float area, perimeter;
//passing multiple variables to a method using 'out' keyword
Calculate(5, 10, out area, out perimeter);
//displaying the result
Console.WriteLine("The area of rectangle is: {0}", area);
Console.WriteLine("The perimeter of rectangle is: {0}", perimeter);
Console.ReadLine();
}
//method taking length & breadth & it will return area and perimeter of rectangle
public static void Calculate(int length, int breadth, out float area, out float
perimeter)
{
area = length * breadth;
perimeter = 2 * (length + breadth);
}
}
}

Ausgabe:

C#-Out-Parameter

Beispiel #2

Beispiel, das die Inline-Deklaration des „out“-Parameters zeigt.

Code:

using System;
namespace ConsoleApp4
{
public class Program
{
public static void Main()
{
//in-line declaration of variables without assigning values
Calculate(out int length, out int breadth, out float area);
//displaying the values of length, breadth, and area
Console.WriteLine("Length of rectangle: " + length);
Console.WriteLine("Breadth of rectangle: " + breadth);
Console.WriteLine("Area of rectangle: " + area);
Console.ReadLine();
}
//method taking 'out' parameters and it returns multiple values
public static void Calculate(out int l, out int b, out float a)
{
l = 30;
b = 40;
a = l * b;
}
}
}

Ausgabe:

C#-Out-Parameter

Fazit

Der Parameter „out“ in C# ermöglicht es Benutzern, Argumente durch Verweis auf eine Methode zu übergeben. Die als „out“-Parameter verwendete Variable muss nicht initialisiert werden, bevor sie an eine Methode übergeben wird. Die aufgerufene Methode sollte dem Out-Parameter einen Wert zuweisen, bevor sie einen Wert zurückgibt.

Das obige ist der detaillierte Inhalt vonC#-Out-Parameter. 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