Різниця між параметром ref і out у c #

ref (Довідковий) параметр

Параметр "ref" використовується для передачі значення за посиланням від фактичного параметра до формального параметра, тобто від методу callee до названого методу. У C # параметр, оголошений модифікатором ref, є еталонним параметром. Коли ви передаєте параметри за посиланням, на відміну від значущих параметрів, для цього параметра не створюється нове місцезнаходження. Будь-які зміни, внесені до формального параметра, відображатимуться у фактичному параметрі.

Приклад посилання Параметр
Як показано у наведеному вище фрагменті програми, будь-які зміни, внесені до m, будуть відображені на n, оскільки параметр передається посиланням.

параметр вихід (вихід)

Вихідний параметр використовується для повернення результату до функції виклику. Ключове слово "out" використовується для оголошення параметра як вихідного параметра. Подібно до еталонного параметра, вихідний параметр не створює нове місце зберігання. Натомість він стає псевдонімом параметра в методі виклику.

Приклад вихідного параметра
У вищезгаданій програмі x оголошується як параметр «out» у функції виклику, і як ви бачите, x не був ініціалізований. Коли функція Square припиняється, значення q буде скопійовано у вихідний параметр x.

Різниця між параметром ref та out у C #

  1. У довідковому параметрі зміни, внесені до формального параметра, відображають фактичний параметр, тоді як у параметрі вихід значення відбивається назад на вихідний параметр викличної функції.
  2. Фактичному параметру 'output' зазвичай не присвоюється значення, тоді як фактичному параметру, оголошеному як посилання, завжди слід присвоювати значення перед викликом.
    Примітка: Ви повинні призначити значення параметру out у тілі методу; інакше метод не буде скомпільований.
  3. Параметри виходу та ref не створюють нове місце в пам'яті.
  4. Параметри ref і out обробляються по-різному під час виконання, але вони обробляються однаково під час компіляції.