Читаю Джон Шарп - Microsoft Visual C#. Подробное руководство - 2017.
Разбираю тему с ref и out и там встречается такое примечание:
Уже второй, третий раз встречаю слово псевдоним.
Собственно вопрос: что такое псевдоним для аргумента в данном контексте или псевдоним в целом.
Ответ
Смотрите. «Обычные» параметры (без ref/out) передаются в метод по значению. Это значит, что если вы поменяете значение параметра внутри метода, то снаружи этого никто не заметит.
(Если вы поменяете не сам параметр ссылочного типа, а его поля/свойства, то это снаружи будет видно, но это уже другая история.)
Теперь, если у вас при параметре указан ref, то изменения этого параметра станут видны снаружи. То есть в коде
void Change(ref string s)
{
s = "Хихи";
}
string abc = "abc";
Change(ref abc);
будет изменена не копия ссылки abc на строку, а сама эта ссылка. Поэтому если вы теперь напишете
Console.WriteLine(abc);
— то выведено будет именно Хихи
Таким образом, имеется в виду, что s во время выполнения метода как бы просто другое имя (то есть, псевдоним) для имени abc
Комментариев нет:
Отправить комментарий