The von je kľúčové slovo v C#, ktoré sa používa na odovzdávanie argumentov metódam ako referenčný typ. Vo všeobecnosti sa používa, keď metóda vracia viacero hodnôt.
Dôležité body:
- Je to podobné ako kľúčové slovo ref. Ale to hlavné rozdiel medzi ref a out kľúčové slovo je, že ref vyžaduje, aby bola premenná inicializovaná predtým, ako prejde do metódy. Parameter out však nevyžaduje, aby boli premenné inicializované predtým, ako prejdú do metódy. Ale predtým, ako vráti hodnotu volajúcej metóde, musí byť premenná inicializovaná vo volanej metóde.
- Je tiež podobný kľúčovému slovu in ale v kľúčové slovo neumožňuje metóde, ktorá volala, zmeniť hodnotu argumentu, ale ref umožňuje.
- Na používanie von kľúčové slovo ako parameter, definícia metódy aj volanie metódy musia používať von kľúčové slovo explicitne.
- Parametre out nie je dovolené používať v asynchrónnych metódach.
- Parametre out nie je možné použiť v metódach iterátora.
- V metóde môže byť viac ako jeden out parameter.
- V čase volania metódy môže byť parameter out deklarovaný ako inline. Ale k parametrom inline out je možné pristupovať v rovnakom bloku kódu, v ktorom volá.
- Preťaženie metódy je možné vykonať aj pomocou out parametrov.
- Vlastnosti nemožno odovzdať ako parametre, pretože nejde o premenné.
- Až do C# 6.0 používateľ najprv premennú deklaruje a potom môže prejsť iba ako argument out. Ale od C# 7.0, s výnimkou samostatnej deklarácie premennej, môže užívateľ deklarovať aj premennú out v zozname argumentov pri volaní metódy.
Vyhlásenie o parametri:
// 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);>
Tu je hodnota názov_premennej musí byť inicializovaný vo volanej metóde predtým, ako vráti hodnotu.
Príklad:
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;> >}> }> |
>
>Výkon:
The addition of the value is: 60>
Viacnásobné parametre: V C# má používateľ povolené odovzdať metóde viacero parametrov a metóda vráti viacero hodnôt.
Príklad: V nižšie uvedenom kóde sme deklarovali dve hodnotové premenné bez inicializácie, tj int i, j;. Teraz tieto parametre odovzdáme metóde Addition pomocou kľúčového slova out ako Addition(out i, out j);. Hodnota týchto premenných je priradená v metóde, ktorou prešli.
C#
hrithik roshan
// 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;> >}> }> |
>
>Výkon:
The addition of the value is: 60 The addition of the value is: 80>
Vylepšenie parametra Out v C# 7.0: V C# 7.0 sú do parametra out pridané niektoré nové funkcie a funkcie sú:
- V C# 7.0 môže parameter out prejsť bez jeho deklarácie a inicializácie, ktorá sa nazýva In-line deklarácia parametra Out alebo Implicitné Typ Out Parameter . Jeho rozsah je obmedzený na telo metódy, t. j. miestny rozsah.
- Je povolené používať parameter out bol zadajte do zoznamu parametrov metódy.
- Parameter in out nie je povinné, aby bol názov parametra out rovnaký v definícii aj vo volaní.
- Dá sa použiť aj v Try Pattern.
Príklad: Nižšie uvedené programy demonštrujú inline deklaráciu parametra Out. Tu je riadok kódu, napr. Area(out int length, out int width, out int Rarea); obsahuje inline deklaráciu parametra Out, keďže tieto premenné sú priamo deklarované vo vnútri volania metódy. Hodnota premenných sa inicializuje v metóde, ktorou prešli.
Poznámka: Na spustenie tohto príkladu potrebujete verziu C# 7.0.
Príklad:
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;> >}> }> |
>
>
q1 q2 q3 q4
Výkon:
Length of the rectangle is : 30 Width of the rectangle is : 40 Area of the rectangle is : 1200>