Ключевая разница - out и ref в C
C - современный язык программирования, разработанный Microsoft. Он используется для разработки различных приложений для настольных компьютеров, Интернета и мобильных устройств. Функции или методы - это понятие в программировании. Эта группа операторов, которые используются для выполнения конкретной задачи, известна как функция или метод. В программах C выполнение начинается с main(). Это пример метода. При вызове метода данные передаются в метод или принимаются от метода. Метод, вызывающий новый метод, называется вызовом метода. Новый метод известен как вызываемый метод. Для управления передаваемыми значениями и получения результата C использует параметры. Это оцениваемые параметры, выходные параметры и эталонные параметры. Параметры значения используются для передачи параметров в метод по значению. Ссылочные параметры используются для передачи параметров в метод по ссылке. Выходные параметры используются для передачи результата обратно из метода. В C ключевое слово out используется для выходных параметров, а ключевое слово ref используется для ссылки на параметры. Ключевое различие между out и ref в C заключается в том, что out - это ключевое слово, используемое для ссылки на выходной параметр, который используется для передачи результатов из вызываемого метода в вызывающий метод, а ref - это ключевое слово для ссылки на ссылочный параметр, который используется для передачи. данные от вызывающего метода к вызываемому методу и для получения данных от вызываемого метода к вызывающему методу.
Что нового в C?
Синтаксис функции или метода следующий. Метод имеет ряд элементов, таких как имя метода, список параметров, тип возвращаемого значения и спецификатор доступа.
(список параметров)
{ //операторы для выполнения
}
Каждый метод имеет уникальный метод для вызова функции. Исполняемые инструкции заключены в фигурные скобки. Тип возвращаемого значения объясняет, возвращает ли функция значение или нет. Когда нет возвращаемого типа, он называется недействительным. Спецификатор доступа используется для указания доступности метода в приложении. Параметры используются для получения или передачи данных методу. Также могут быть методы без параметров. Параметры могут быть оцениваемыми параметрами, выходными параметрами или эталонными параметрами.
Выходные параметры используются для передачи результатов вызывающему методу. Для этого параметр должен быть объявлен с ключевым словом out. Выходной параметр не создает новое место хранения. Как правило, метод возвращает одно значение. Но в C можно вернуть два значения из функции, используя выходные параметры. См. приведенную ниже программу.
namespace application1{
Расчет общедоступного класса{
public void display(out int a, out int b){
целое значение=5;
a=значение;
b=значение;
а=а а;
b=bb;
}
public static void main(String args){
int значение1=10, значение2=20;
Расчет cal=new Calculation();
cal.display(out value1, out value2);
Console. ReadLine();
}
}
}
Функция отображения вызывается из основного метода. Значение1 и значение два имеют значения 10 и 20, но они не учитываются в методе. Значение a равно 25, и значение b также равно 25 в функции. Таким образом, эти значения возвращаются. При печати значения1 и значения2 он не выдаст 10 и 20. Вместо этого он выведет 25 и 25. Используя ключевое слово out, из метода можно вернуть несколько значений.
Что такое ref в C?
При передаче параметров по значению для каждого параметра создается новое место хранения. Фактические параметры, отправленные из основной программы, не изменяются. Вместо этого эти значения копируются в отдельное место. Эти новые копии переменных называются формальными параметрами. См. приведенный ниже код.
namespace application1{
Расчет общедоступного класса{
public void swap(int x, int y){
int temp;
temp=x;
x=y;
y=темп;
}
public static void main(String args){
Расчет cal=new Calculation();
int p=2;
int q=3;
cal.swap(p, q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
Согласно приведенной выше программе, класс Calculation имеет метод swap(). В основной программе создается объект типа Расчет. Есть два значения, такие как p и q. Переменная p имеет значение 2, а переменная q имеет значение 3. Эти два значения передаются методу swap. В методе swap значение 2 копируется в переменную x, а значение 3 копируется в переменную y. Используя переменную temp, значения меняются местами. В основной программе при печати p и q значения не меняются местами. Значение p по-прежнему равно 2, а значение q равно 3. Даже в методе подкачки значения меняются местами, но это не отражается в основной программе.
В отличие от передачи значений, как описано выше, параметры можно передавать по ссылке. Ссылочная переменная - это ссылка на ячейку памяти. Новое место в памяти не создается. Изменения в методе отражены в основной программе. В C ссылочные параметры указываются с использованием ключевого слова ref. См. приведенную ниже программу.
namespace application1{
Расчет общедоступного класса{
public void swap(ref int x, ref int y){
int temp;
temp=x;
х=у;
y=темп;
}
public static void main(String args){
Расчет cal=new Calculation();
int p=2;
int q=3;
cal.swap(ref p, ref q);
Console. WriteLine(p);
Console. WriteLine(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?
out vs ref в C |
|
out - это ключевое слово в C, которое используется для ссылки на выходной параметр. Он используется для передачи результатов от вызываемого метода к вызову метода. | Ref - это ключевое слово в C, которое используется для ссылки на ссылочный параметр. Он используется для передачи данных из вызывающего метода в вызываемый метод и для возврата данных из вызываемого метода в вызывающий метод. |
Функциональность | |
При использовании ключевого слова out данные могут быть переданы из вызывающего метода в вызываемый метод. Но эти данные сбрасываются. Он используется для передачи результата вызывающему методу из вызываемого метода. | При использовании ключевого слова ref данные передаются из вызывающего метода в вызываемый метод, а обработанные данные передаются обратно в вызывающий метод. |
Передача данных | |
При использовании ключевого слова out данные передаются одним способом – вызываемым методом вызывающему методу. | При использовании ключевого слова ref данные передаются двумя способами: от вызывающего метода к вызываемому методу и от вызываемого метода к вызывающему методу. |
Резюме - out vs ref в C
При вызове метода может потребоваться передать значения в метод и получить результаты из метода. C имеет разные параметры для достижения этого. Параметры значения используются для передачи параметров в метод по значению. Ссылочные параметры используются для передачи параметров в метод по ссылке. Выходные параметры используются для передачи результата обратно из метода. В C ключевое слово out используется для выходных параметров, а ключевое слово ref используется для ссылки на параметры. Разница между out и ref в C заключается в том, что out - это ключевое слово, используемое для ссылки на выходной параметр, который используется для передачи результатов от вызываемого метода в вызывающий метод, а ref - это ключевое слово для ссылки на ссылочный параметр, который используется для передачи данных из вызывающий метод вызываемому методу и получать данные от вызываемого метода к вызывающему методу.
Загрузить PDF-файл out vs ref в C
Вы можете загрузить PDF-версию этой статьи и использовать ее в автономном режиме в соответствии с примечанием к цитированию. Загрузите PDF-версию здесь: Разница между Out и Ref в C