Разница между out и ref в C #

Основная разница - вне vs ref в C #
 

C # - это современный язык программирования, разработанный Microsoft. Он используется для разработки различных приложений для настольных компьютеров, веб-сайтов и мобильных устройств. Функции или методы - это понятие в программировании. Та группа операторов, которая используется для выполнения конкретной задачи, называется функцией или методом. В программах на C # выполнение начинается с main (). Это пример метода. При вызове метода данные передаются в метод или принимаются от метода. Метод, который вызывает новый метод, известен как вызов метода. Новый метод известен как названный метод. Для управления передаваемыми значениями и получения результата C # использует параметры. Это оцениваемые параметры, выходные параметры и ссылочные параметры. Значения параметров используются для передачи параметров в метод по значению. Эталонные параметры используются для передачи параметров в метод по ссылке. Выходные параметры используются для передачи результата обратно из метода. В C # ключевое слово out используется для выходных параметров, а ключевое слово ref используется для ссылки на параметры. ключевое отличие между и ref в C # является то, что, out - это ключевое слово, используемое для ссылки на выходной параметр, который используется для передачи результатов из вызываемого метода в вызывающий метод, а ref - это ключевое слово для ссылки на ссылочный параметр, который используется для передачи данных из вызывающего метода в вызываемый метод и получения данных. от вызываемого метода к вызывающему методу.

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что есть в C #
3. Что такое ссылка в C #
4. Сходства между out и ref в C #
5. Сравнение бок о бок - в сравнении с ref в C # в табличной форме
6. Резюме

Что в C #?

Синтаксис для функции или метода следующий. Метод имеет ряд элементов, таких как имя метода, список параметров, тип возвращаемого значения и спецификатор доступа..

(список параметров)

// операторы для выполнения

Каждый метод имеет уникальный метод для вызова функции. Исполняемые операторы находятся внутри фигурных скобок. Тип возврата объясняет, возвращает ли функция значение или нет. Когда нет возвращаемого типа, он называется void. Спецификатор доступа используется для указания доступности метода в приложении. Параметры используются для получения или передачи данных в метод. Также могут быть методы без параметров. Параметры могут быть оцененными параметрами, выходными параметрами или ссылочными параметрами..

Выходные параметры используются для передачи результатов обратно вызывающему методу. Для этого параметр должен быть объявлен с ключевым словом out. Выходной параметр не создает новое место хранения. Как правило, метод возвращает одно значение. Но в C # можно вернуть два значения из функции, используя выходные параметры. См. Ниже программу.

namespace application1

            Расчет общественного класса

публичное отображение пустоты (out int a, out int b)

значение int = 5;

а = значение;

б = значение;

а = а * а;

b = b * b;

public static void main (String [] args)

int value1 = 10, value2 = 20;

Расчет cal = новый расчет ();

cal.display (выходное значение1, выходное значение2);

Console.ReadLine ();

Функция отображения вызывается из основного метода. Значение1 и значение два имеют 10 и 20, но они не учитываются в методе. Значение a равно 25, а значение b также равно 25 в функции. Поэтому эти значения возвращаются. При печати value1 и value2 он не даст 10 и 20. Вместо этого он напечатает 25 и 25. Используя ключевое слово out, из метода можно получить несколько значений.

Что такое ссылка в C #?

При передаче параметров по значению для каждого параметра создается новое место хранения. Фактические параметры, которые были отправлены из основной программы, не меняются. Вместо этого эти значения копируются в отдельное местоположение. Эти новые копии переменных называются формальными параметрами. См. Код ниже.

namespace application1

Расчет общественного класса

public void swap (int x, int y)

int temp;

Темп = х;

х = у;

у = темп;

public static void main (String [] args)

Расчет cal = новый расчет ();

int p = 2;

int q = 3;

cal.swap (р, д);

ЕЫпе (р);

ЕЫпе (кв);

Console.ReadLine ();

Согласно вышеприведенной программе, в классе Calculation есть метод swap (). В основной программе создается объект типа Расчет. Есть два значения, такие как p и q. Переменная p имеет значение 2, а переменная q имеет значение 3. Эти два значения передаются методу swap. В методе подкачки значение 2 копируется в переменную x, а значение 3 копируется в переменную y. Используя переменную temp, значения меняются местами. Вернувшись в основную программу, при печати p и q значения не меняются местами. Значение p по-прежнему равно 2, а значение q равно 3. Даже в методе swap значения меняются местами, но не отражаются в основной программе.

В отличие от передачи значений, как указано выше, параметры можно передавать по ссылке. Ссылочная переменная является ссылкой на ячейку памяти. Там нет новой ячейки памяти создается. Изменения в методе отражены в основной программе. В C # ссылочные параметры указываются с помощью ключевого слова ref. См. Ниже программу.

namespace application1

Расчет общественного класса

public void swap (ref int x, ref int y)

int temp;

temp = x;

х = у;

у = темп;

public static void main (String [] args)

Расчет cal = новый расчет ();

int p = 2;

int q = 3;

cal.swap (ref p, ref q);

ЕЫпе (р);

ЕЫпе (кв);

Console.ReadLine ();

Согласно вышеприведенной программе, у класса Calculation есть метод swap. В основной программе создается объект типа Расчет. Это две переменные, такие как p и q. Переменная p имеет значение 2, а переменная q имеет значение 3. Вместо передачи значений в метод передается ссылка на ячейки памяти p и q. Эти ссылочные переменные упоминаются с использованием ref. В методе подкачки вместо копирования значений в новое местоположение вносятся изменения в фактические параметры. При печати значений p и q основной программы она выдаст поменяемые значения. Теперь значение p равно 3, а значение q равно 2.

Что такое сходство между out и ref в C #?

  • Оба являются ключевыми словами, используемыми для ссылки на параметры метода.

В чем разница между out и ref в C #?

выход против ссылки в C #

Out - это ключевое слово в C #, которое используется для ссылки на выходной параметр. Он используется для передачи результатов вызываемого метода в вызов метода. Ссылка - это ключевое слово в C #, которое используется для ссылки на ссылочный параметр. Он используется для передачи данных из вызывающего метода в вызываемый метод и для возврата данных из вызываемого метода в вызывающий метод.
функциональность
При использовании ключевого слова out данные могут передаваться из вызывающего метода в вызываемый метод. Но эти данные отбрасываются. Он используется для передачи результата в вызывающий метод из вызываемого метода. При использовании ключевого слова ref данные передаются из вызывающего метода в вызываемый метод, а манипулированные данные передаются обратно в вызывающий метод..
Передача данных
При использовании ключевого слова out данные передаются одним способом, который является вызываемым методом, вызывающему методу.. При использовании ключевого слова ref данные передаются двумя способами: от вызывающего метода к вызываемому методу и от вызываемого метода к вызывающему методу..

Резюме - выход vs ref в C # 

При вызове метода может потребоваться передать значения в метод и получить обратно результаты из метода. C # имеет различные параметры для достижения этой цели. Значения параметров используются для передачи параметров в метод по значению. Эталонные параметры используются для передачи параметров в метод по ссылке. Выходные параметры используются для передачи результата обратно из метода. В C # ключевое слово out используется для выходных параметров, а ключевое слово ref используется для ссылки на параметры. Разница между out и ref в C # заключается в том, что out - это ключевое слово, используемое для ссылки на выходной параметр, который используется для передачи результатов из вызываемого метода в вызывающий метод, а ref - это ключевое слово для ссылки на ссылочный параметр, который используется для передачи данных из вызов метода для вызываемого метода и получение данных от вызываемого метода к вызывающему методу.

Загрузите PDF-файл с описанием в C #

Вы можете скачать PDF-версию этой статьи и использовать ее в автономном режиме согласно примечанию. Пожалуйста, загрузите PDF версию здесь: Разница между Out и Ref в C #

Ссылка:

1.tutorialspoint.com. «Методы C #». Смысл. Доступна здесь 
2.dnfvideo. Параметры C # Out против параметров REF, видео с подготовкой интервью к .NET, 28 сентября 2015 г. Доступно здесь  

Изображение предоставлено:

1.'C sharp'By Mothmolevna - собственная работа, (общественное достояние) через Wikimedia Commons