Как применить ref и out для ссылок на объекты - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста разобраться новичку. Читаю шилдта, никак не могу въехать.... С применением Ref & out для переменных типа значений все предельно ясно. А вот при для объектов не могу понять... Как вижу все это я: Типы значений: при передаче методу параметр получает копию значения аргумента. Соответственно, любые изменения в методе приводят к изменению копии аргумента, а значит, сам аргумент не изменяется. Все это исправляется при использования ref&out. Ссылочный тип: при передаче методу параметр получает копию ссылки на объект. Т.е. сама ссылка передается по значению. Получается, наш объект теперь имеет "псевдонимы", и его можно изменять из метода. Но что происходит при использовании ref с объектом??? Шилдт приводит пример с методом Swap, в котором изменяются ссылки на объекты.... (с 228) Кто бы мне объяснил весь процесс по пунктам... а то никак не могу понять, что вообще там происходит. Фраза: если модификаторы ref или out указывают на ссылку, то сама ссылка передается по ссылке - убила наповал))) Спасибо заранее

Решение задачи: «Как применить ref и out для ссылок на объекты»

textual
Листинг программы
  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             label1.Text = "Петя";
  4.         }
  5.  
  6.         private void button1_Click(object sender, EventArgs e)
  7.         {          
  8.             NoRef(label1);
  9.         }
  10.  
  11.         private void button2_Click(object sender, EventArgs e)
  12.         {
  13.             Ref(ref label1);
  14.         }
  15.  
  16.  
  17.         static void NoRef(Label l)
  18.         {
  19.             l = new Label { Text= "Вася" };
  20.         }
  21.  
  22.         static void Ref(ref Label l)
  23.         {          
  24.             l = new Label { Text = "Вася" };
  25.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы