Задать вопрос
@SkifEDC

Как перегрузить оператор присваивания, c#?

Здравствуйте, на паре форумов прочитал, что перегрузить этот оператор невозможно. Как решить эту проблему? '

{
    public static void operator = (Person p, Person p1);
}`

Просто если использовать ArrayList.Colone(), то изменяя новую коллекцию я изменяю и исходную, как это возможно избежать? Спасибо за внимание, подскажите куда копать.
  • Вопрос задан
  • 424 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Nipheris
@Nipheris Куратор тега C#
С точки зрения C# вы хотите не того, что нужно. В отличие от C++, где перегрузка операций даёт возможность сформировать индивидуальное поведение для каждого пользовательского типа, в C# для вас построили два основных стереотипа поведения - тип-ссылка и тип-значение - и предлагают выбрать один из них.

Вам нужно переформулировать задачу в более общую, и понять, что вы хотите сделать на самом деле, и для чего вам понадобилось переопределение присваивания. Судя по имени класса (Person), вы явно делаете с ним что-то не то.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Krawler
С# разработчик
Это часом не смешение присваивания и конструктора копирования? Автор хочет поведение в духе:
Person p1 = new Person( ...);
Person p = new Person(p1);

Или я неправильно понимаю вопрос?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы