Как применить ref и out для ссылок на объекты - C#
Формулировка задачи:
Помогите пожалуйста разобраться новичку. Читаю шилдта, никак не могу въехать.... С применением Ref & out для переменных типа значений все предельно ясно. А вот при для объектов не могу понять...
Как вижу все это я:
Типы значений: при передаче методу параметр получает копию значения аргумента. Соответственно, любые изменения в методе приводят к изменению копии аргумента, а значит, сам аргумент не изменяется. Все это исправляется при использования ref&out.
Ссылочный тип: при передаче методу параметр получает копию ссылки на объект. Т.е. сама ссылка передается по значению. Получается, наш объект теперь имеет "псевдонимы", и его можно изменять из метода.
Но что происходит при использовании ref с объектом???
Шилдт приводит пример с методом Swap, в котором изменяются ссылки на объекты.... (с 228)
Кто бы мне объяснил весь процесс по пунктам... а то никак не могу понять, что вообще там происходит.
Фраза: если модификаторы ref или out указывают на ссылку, то сама ссылка передается по ссылке - убила наповал)))
Спасибо заранее
Решение задачи: «Как применить ref и out для ссылок на объекты»
textual
Листинг программы
private void Form1_Load(object sender, EventArgs e) { label1.Text = "Петя"; } private void button1_Click(object sender, EventArgs e) { NoRef(label1); } private void button2_Click(object sender, EventArgs e) { Ref(ref label1); } static void NoRef(Label l) { l = new Label { Text= "Вася" }; } static void Ref(ref Label l) { l = new Label { Text = "Вася" }; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д