Вихідний параметр із прикладами в C#

The поза це ключове слово в C#, яке використовується для передачі аргументів методам як довідковий тип. Зазвичай він використовується, коли метод повертає кілька значень.

Важливі моменти:

  • Це схоже на ключове слово ref. Але головне різниця між ref і out ключове слово полягає в тому, що ref вимагає, щоб змінна була ініціалізована перед тим, як її передати в метод. Але вихідний параметр не вимагає ініціалізації змінних перед передачею в метод. Але перш ніж він повертає значення викликаному методу, змінна повинна бути ініціалізована в викликаному методі.
  • Воно також схоже на ключове слово in, але the в ключове слово не дозволяє методу, який викликається, змінювати значення аргументу, але посилання дозволяє.
  • Для використання поза ключове слово як параметр як у визначенні методу, так і в методі виклику має використовувати поза ключове слово явно.
  • Вихідні параметри не можна використовувати в асинхронних методах.
  • Вихідні параметри не можна використовувати в методах ітератора.
  • У методі може бути більше одного вихідного параметра.
  • Під час виклику методу вихідний параметр може бути оголошений вбудованим. Але доступ до вбудованих вихідних параметрів можна отримати в тому самому блоці коду, де він викликається.
  • Перевантаження методів також можна здійснити за допомогою параметрів out.
  • Властивості не можна передати як вихідні параметри, оскільки вони не є змінними.
  • До C# 6.0 користувач спочатку оголошує змінну, а потім її можна передавати лише як вихідний аргумент. Але починаючи з C# 7.0, за винятком окремого оголошення змінної, користувач також може оголосити вихідну змінну в списку аргументів виклику методу.

Оголошення вихідного параметра:

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

Тут значення ім'я_змінної має бути ініціалізовано у викликаному методі, перш ніж він поверне значення.

приклад:

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;> > }> }>

Вихід:

The addition of the value is: 60 

Кілька вихідних параметрів: У C# користувачеві дозволено передавати кілька параметрів методу, і метод повертає кілька значень.

приклад: У наведеному нижче коді ми оголосили дві змінні значення без ініціалізації, тобто int i, j;. Тепер ми передаємо ці параметри методу Addition за допомогою ключового слова out, наприклад Addition(out i, out j);. Значення цих змінних присвоюється в методі, в якому вони передані.

C#




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

Вихід:

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

Покращення вихідного параметра в C# 7.0: У C# 7.0 є деякі нові функції, додані до параметра out, і ці функції:

  • У C# 7.0 параметр out може проходити без його оголошення та ініціалізації, що називається Внутрішня декларація параметра Out або неявний Тип вихідного параметра . Його область обмежена тілом методу, тобто локальною областю.
  • Дозволено використовувати параметр out був введіть список параметрів методу.
  • У вихідному параметрі необов’язково, щоб ім’я вихідного параметра було однаковим як у визначенні, так і в виклику.
  • Його також можна використовувати в Спробуйте шаблон.

приклад: Наведені нижче програми демонструють вбудоване оголошення параметра Out. Тут рядок коду, тобто Area(out int length, out int width, out int Rarea); містить вбудоване оголошення параметра Out, оскільки ці змінні оголошуються безпосередньо всередині виклику методу. Значення змінних ініціалізується в методі, в якому вони передані.

Примітка: Для виконання цього прикладу вам потрібна версія C# 7.0.

приклад:

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;> > }> }>

Вихід:

Length of the rectangle is : 30 Width of the rectangle is : 40 Area of the rectangle is : 1200