@Nulltiton

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

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

Хочу узнать что означает "^" и почему в return возвращается несколько значений. Как это работает?
  • Вопрос задан
  • 253 просмотра
Решения вопроса 2
shai_hulud
@shai_hulud
Это XOR.
Это бинарный оператор a ^ b
так что цепочка таких операций дает один результат, а не несколько.
Ответ написан
Комментировать
Как уже сказали, ^ - это побитовый XOR (исключающее или)
=> тут return возвращает ровно одно значение - результат этого XOR-а.

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

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

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