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

Что означает этот код?

Начинаю изучения шаблона MVP с WinForms. Нашел пример, в котором реализован данный метод:
public override int GetHashCode()
        {
            return Name.GetHashCode()
                ^ Address.GetHashCode()
                ^ Phone.GetHashCode();
        }

Хочу узнать что означает "^" и почему в return возвращается несколько значений. Как это работает?
  • Вопрос задан
  • 261 просмотр
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    SDP-030_PRG Продвинутая разработка в Microsoft .NET
    1 неделя
    Далее
  • Ulearn.me
    Проектирование на языке C#
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 2
shai_hulud
@shai_hulud
Это XOR.
Это бинарный оператор a ^ b
так что цепочка таких операций дает один результат, а не несколько.
Ответ написан
Комментировать
Как уже сказали, ^ - это побитовый XOR (исключающее или)
=> тут return возвращает ровно одно значение - результат этого XOR-а.

Сегодня так уже не следует писать, а лучше использовать HashCode.Combine (может не работать, если у тебя старый .NET Framework используется):
public override int GetHashCode() => HashCode.Combine(Name, Address, Phone);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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