Троелсен, Передача ссылочных типов по значению - C#

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

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

class Person
{
}
static void SendAPersonByValue(Person p) //получена копия ссылки на объект из вызывающего кода. 
{
    p = new Person("Nikki", 99);
}
static void Main(string [ ] args)
{
    Person fred = new Person ("Fred", 12);
    SendAPersonByValue(fred);
}
разве в строке 6 не создается новый объект в куче? -"Если ссылочный тип передается по значению, вызываемый код может изме*нять значения в данных состояния объекта, но не объект, на который указывает ссылка."

Решение задачи: «Троелсен, Передача ссылочных типов по значению»

textual
Листинг программы
Person fred = new Person ("Fred", 12);
Person fredCopy = fred;
SendPersonByValue(fred);
var flag = Object.ReferenceEqual(fred, fredCopy); // true
 
SendPersonByRef(fred);
flag = Object.ReferenceEqual(fred, fredCopy); // false

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


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

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

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