Der aus ist ein Schlüsselwort in C#, das für die Übergabe der Argumente an Methoden als Referenztyp verwendet wird. Es wird im Allgemeinen verwendet, wenn eine Methode mehrere Werte zurückgibt.
Wichtige Punkte:
- Es ähnelt dem Schlüsselwort ref. Aber das Wichtigste Unterschied zwischen Ref und Out Schlüsselwort ist, dass ref erfordert, dass die Variable initialisiert werden muss, bevor sie an die Methode übergeben wird. Für den Out-Parameter ist es jedoch nicht erforderlich, dass die Variablen initialisiert werden, bevor sie an die Methode übergeben werden. Bevor jedoch ein Wert an die aufrufende Methode zurückgegeben wird, muss die Variable in der aufgerufenen Methode initialisiert werden.
- Es ähnelt auch dem Schlüsselwort in, aber das In Das Schlüsselwort erlaubt der aufgerufenen Methode jedoch nicht, den Argumentwert zu ändern ref erlaubt.
- Zum Benutzen aus Das Schlüsselwort muss sowohl in der Methodendefinition als auch in der aufrufenden Methode als Parameter verwendet werden aus Schlüsselwort explizit angeben.
- Die Out-Parameter dürfen in asynchronen Methoden nicht verwendet werden.
- Die Out-Parameter dürfen in Iteratormethoden nicht verwendet werden.
- Eine Methode kann mehr als einen Out-Parameter enthalten.
- Zum Zeitpunkt des Methodenaufrufs kann der Out-Parameter inline deklariert werden. Auf die Inline-Out-Parameter kann jedoch im selben Codeblock zugegriffen werden, in dem sie aufgerufen werden.
- Das Überladen von Methoden kann auch mithilfe unserer Parameter erfolgen.
- Eigenschaften können nicht als Ausgangsparameter übergeben werden, da es sich dabei nicht um Variablen handelt.
- Bis C# 6.0 deklariert ein Benutzer zunächst die Variable und kann sie dann nur als Out-Argument übergeben. Aber ab C# 7.0 kann der Benutzer, mit Ausnahme einer separaten Variablendeklaration, die Out-Variable auch in der Argumentliste des Methodenaufrufs deklarieren.
Deklaration unseres Parameters:
// No need to initialize // the variable here data_type variable_name; Method_Name(out variable_name); // you can also convert both above two // lines of codes as follows from // C# 7.0 onwards Method_Name(out data_type variable_name);>
Hier der Wert von Variablennamen muss in der aufgerufenen Methode initialisiert werden, bevor sie einen Wert zurückgibt.
Beispiel:
C#
// C# program to illustrate the> // concept of out parameter> using> System;> class> GFG {> >// Main method> >static> public> void> Main()> >{> >// Declaring variable> >// without assigning value> >int> i;> >// Pass variable i to the method> >// using out keyword> >Addition(>out> i);> >// Display the value i> >Console.WriteLine(>'The addition of the value is: {0}'>, i);> >}> >// Method in which out parameter is passed> >// and this method returns the value of> >// the passed parameter> >public> static> void> Addition(>out> int> i)> >{> >i = 30;> >i += i;> >}> }> |
>
>Ausgabe:
The addition of the value is: 60>
Mehrere Ausgangsparameter: In C# darf ein Benutzer mehrere Parameter an die Methode übergeben und die Methode gibt mehrere Werte zurück.
Beispiel: Im folgenden Code haben wir zwei Wertvariablen ohne Initialisierung deklariert, d. h. int i, j;. Jetzt übergeben wir diese Parameter an die Additionsmethode mit dem Schlüsselwort out wie Addition(out i, out j);. Der Wert dieser Variablen wird in der Methode zugewiesen, in der sie übergeben wurden.
C#
Windows-Befehl arp
// C# program to illustrate the> // concept of multiple out parameter> using> System;> class> GFG {> >// Main method> >static> public> void> Main()> >{> >// Declaring variables> >// without assigning values> >int> i, j;> >// Pass multiple variable to> >// the method using out keyword> >Addition(>out> i,>out> j);> >// Display the value i and j> >Console.WriteLine(>'The addition of the value is: {0}'>, i);> >Console.WriteLine(>'The addition of the value is: {0}'>, j);> >}> >// Method in which out parameters> >// are passed and this method returns> >// the values of the passed parameters> >public> static> void> Addition(>out> int> p,>out> int> q)> >{> >p = 30;> >q = 40;> >p += p;> >q += q;> >}> }> |
>
>Ausgabe:
The addition of the value is: 60 The addition of the value is: 80>
Erweiterung des Out-Parameters in C# 7.0: In C# 7.0 wurden dem Out-Parameter einige neue Funktionen hinzugefügt, und zwar:
- In C# 7.0 kann der Out-Parameter ohne seine Deklaration und Initialisierung übergeben werden, was als bezeichnet wird Inline-Deklaration des Out-Parameters oder implizit Geben Sie den Out-Parameter ein . Sein Geltungsbereich ist auf den Methodenkörper, d. h. den lokalen Geltungsbereich, beschränkt.
- Der Out-Parameter darf verwendet werden War Geben Sie die Methodenparameterliste ein.
- Für den Out-Parameter ist es nicht zwingend erforderlich, dass der Name des Out-Parameters sowohl in der Definition als auch im Aufruf identisch ist.
- Es kann auch in Try Pattern verwendet werden.
Beispiel: Die folgenden Programme veranschaulichen die Inline-Deklaration des Out-Parameters. Hier die Codezeile, d. h. Area(out int length, out int width, out int Rarea); enthält die Inline-Deklaration des Out-Parameters, da diese Variablen direkt im Methodenaufruf deklariert werden. Der Wert der Variablen wird in der Methode initialisiert, in der sie übergeben wurden.
Notiz: Zum Ausführen dieses Beispiels benötigen Sie die C#-Version 7.0.
string.format Java
Beispiel:
C#
// C# program to illustrate the> // concept of out parameter> using> System;> class> GFG> {> >// Main method> >static> public> void> Main()> >{> >// In-line declaring variables> >// without assigning values> >// Passing multiple variable to> >// the method using out keyword> >Area(>out> int> length,>out> int> width,>out> int> Rarea);> >// Display the value length, width, and Rarea> >System.Console.WriteLine(>'Length of the rectangle is: '>+ length);> >System.Console.WriteLine(>'Width of the rectangle is: '>+ width);> >System.Console.WriteLine(>'Area of the rectangle is: '>+ Rarea);> >Console.ReadLine();> >}> >// Method in which out parameters are passed> >// and this method returns the values of> >// the passed parameters> >public> static> void> Area(>out> int> p,>out> int> q,>out> int> Rarea)> >{> >p = 30;> >q = 40;> >Rarea = p * q;> >}> }> |
>
>
Ausgabe:
Length of the rectangle is : 30 Width of the rectangle is : 40 Area of the rectangle is : 1200>