Как применить 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 = "Вася" };
        }

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы