The išeiti yra raktinis žodis C#, kuris naudojamas argumentams perduoti metodams kaip nuorodos tipas. Paprastai jis naudojamas, kai metodas grąžina kelias reikšmes.
Svarbūs punktai:
- Tai panašu į ref raktinį žodį. Tačiau pagrindinis skirtumas tarp ref ir out raktinis žodis yra tas, kad ref reikalauja, kad kintamasis turi būti inicijuotas prieš perduodant metodą. Tačiau iš parametro nereikia inicijuoti kintamųjų prieš perduodant jį metodui. Tačiau prieš grąžinant reikšmę iškvietimo metodui, kintamasis turi būti inicijuotas iškviečiamu metodu.
- Jis taip pat panašus į raktinį žodį, bet in raktinis žodis neleidžia metodui, kuris iškvietė, pakeisti argumento reikšmę, bet ref leidžia.
- Dėl naudojimo išeiti raktinis žodis kaip parametras turi naudoti ir metodo apibrėžimą, ir iškvietimo metodą išeiti raktinis žodis aiškiai.
- Išvesties parametrai neleidžiami naudoti asinchroniniuose metoduose.
- Išvesties parametrai neleidžiami naudoti iteratoriaus metoduose.
- Metode gali būti daugiau nei vienas išėjimo parametras.
- Metodo iškvietimo metu išėjimo parametras gali būti paskelbtas eilute. Tačiau įvesties išvesties parametrus galima pasiekti tame pačiame kodo bloke, kur jis iškviečia.
- Metodo perkrovimas taip pat gali būti atliktas naudojant išorinius parametrus.
- Savybės negali būti perduodamos kaip parametrai, nes tai nėra kintamieji.
- Iki C# 6.0 vartotojas pirmiausia deklaruoja kintamąjį, tada jis gali perduoti tik kaip išorinį argumentą. Tačiau iš C# 7.0, išskyrus atskirą kintamojo deklaraciją, vartotojas taip pat gali deklaruoti out kintamąjį metodo iškvietimo argumentų sąraše.
Išorinio parametro deklaracija:
// 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);>
Čia vertė kintamojo_pavadinimas turi būti inicijuotas iškviečiamu metodu, kol jis grąžins reikšmę.
Pavyzdys:
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;> >}> }> |
>
>Išvestis:
The addition of the value is: 60>
Keli parametrai: C# vartotojui leidžiama perduoti metodui kelis parametrus, o metodas grąžina kelias reikšmes.
Pavyzdys: Žemiau esančiame kode mes paskelbėme du reikšmių kintamuosius be inicijavimo, ty int i, j;. Dabar mes perduodame šiuos parametrus papildymo metodui naudodami raktinį žodį, pvz., Addition(out i, out j);. Šių kintamųjų reikšmė priskiriama metodu, kuriuo jie buvo perduoti.
C#
skaičiuojant kadenciją „Excel“.
// 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;> >}> }> |
10 iki 6 laipsnio
>
>Išvestis:
The addition of the value is: 60 The addition of the value is: 80>
Išorinio parametro patobulinimas C# 7.0: C# 7.0 prie išvesties parametro pridėta keletas naujų funkcijų, kurios yra šios:
- C# 7.0 versijoje out parametras gali praeiti be jo deklaravimo ir inicijavimo, kuris vadinamas Eilutę išvesties parametro deklaravimas arba numanomas Įveskite išvesties parametrą . Jo taikymo sritis apsiriboja metodo korpusu, ty vietine apimtimi.
- Leidžiama naudoti išėjimo parametrą buvo įveskite metodo parametrų sąrašą.
- Išvesties parametras nėra privalomas, kad išvesties parametro pavadinimas būtų toks pat apibrėžime ir iškvietime.
- Jis taip pat gali būti naudojamas bandant šabloną.
Pavyzdys: Žemiau esančios programos demonstruoja eilutę Out parametro deklaraciją. Čia kodo eilutė, ty Plotas (out int ilgis, out int plotis, out int Retas); yra eilutinė Out parametro deklaracija, nes šie kintamieji yra tiesiogiai deklaruojami metodo iškvietime. Kintamųjų reikšmė inicijuojama metodu, kuriuo jie buvo perduoti.
Pastaba: Norint paleisti šį pavyzdį, reikalinga C# 7.0 versija.
Pavyzdys:
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;> >}> }> |
>
>
Išvestis:
Length of the rectangle is : 30 Width of the rectangle is : 40 Area of the rectangle is : 1200>