logo

Out parametr s příklady v C#

The ven je klíčové slovo v C#, které se používá pro předávání argumentů metodám jako referenční typ. Obecně se používá, když metoda vrací více hodnot.

Důležité body:



  • Je to podobné klíčovému slovu ref. Ale hlavní rozdíl mezi ref a out klíčové slovo je, že ref vyžaduje, aby proměnná byla inicializována před jejím předáním metodě. Parametr out však nevyžaduje inicializaci proměnných před předáním metodě. Než však vrátí hodnotu volající metodě, musí být proměnná inicializována ve volané metodě.
  • Je také podobné klíčovému slovu in but the v klíčové slovo neumožňuje metodě, která volala, změnit hodnotu argumentu, ale ref umožňuje.
  • Pro použití ven klíčové slovo jako parametr musí používat jak definice metody, tak volání metody ven klíčové slovo explicitně.
  • Parametry out nelze používat v asynchronních metodách.
  • Parametry out nelze používat v metodách iterátoru.
  • V metodě může být více než jeden out parametr.
  • V době volání metody může být parametr out deklarován jako inline. Ale k inline out parametrům lze přistupovat ve stejném bloku kódu, kde volá.
  • Přetížení metody lze také provést pomocí out parametrů.
  • Vlastnosti nelze předávat jako parametry, protože se nejedná o proměnné.
  • Až do C# 6.0 uživatel proměnnou nejprve deklaruje a poté může předat pouze jako argument out. Ale od C# 7.0, s výjimkou samostatné deklarace proměnné, může uživatel také deklarovat proměnnou out v seznamu argumentů volání metody.

Prohlášení o out Parametr:

// 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);>

Zde je hodnota název_proměnné musí být inicializován ve volané metodě, než vrátí hodnotu.

Pří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ýstup:

The addition of the value is: 60>

Více parametrů: V C# je uživateli povoleno předat metodě více parametrů a metoda vrací více hodnot.

Příklad: V níže uvedeném kódu jsme deklarovali dvě hodnotové proměnné bez inicializace, tj. int i, j;. Nyní tyto parametry předáme metodě Addition pomocí klíčového slova out jako Addition(out i, out j);. Hodnota těchto proměnných je přiřazena v metodě, kterou prošly.

C#


počítač vynalezený rok



// 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ýstup:

The addition of the value is: 60 The addition of the value is: 80>

Vylepšení parametru Out v C# 7.0: V C# 7.0 jsou do parametru out přidány některé nové funkce a tyto funkce jsou:

  • V C# 7.0 může parametr out projít bez jeho deklarace a inicializace, která se nazývá In-line deklarace parametru Out nebo Implicitní Typ Out Parametr . Jeho rozsah je omezen na tělo metody, tj. místní rozsah.
  • Je povoleno použít parametr out byl zadejte do seznamu parametrů metody.
  • Parametr in out není povinné, aby jméno parametru out bylo stejné v definici i volání.
  • Může být také použit v Try Pattern.

Příklad: Níže uvedené programy demonstrují inline deklaraci parametru Out. Zde řádek kódu, tj. Area (out int length, out int width, out int Rarea); obsahuje inline deklaraci parametru Out, protože tyto proměnné jsou přímo deklarovány uvnitř volání metody. Hodnota proměnných je inicializována v metodě, kterou prošly.

Poznámka: Ke spuštění tohoto příkladu potřebujete verzi C# 7.0.

Pří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;> >}> }>

>

>

Výstup:

binární vyhledávací strom
Length of the rectangle is : 30 Width of the rectangle is : 40 Area of the rectangle is : 1200>