1. C# / Говнокод #8045

    +131

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private bool IsChanged(string name, string surname, string patronymic, string email, bool? sex = null, byte[] avatar = null, DateTime? birthDate = null, string address = null)
            {
                bool r1 = sex == null ^ Sex == null ? true : (sex != null ? sex.Value != Sex.Value : true);
                bool r2 = birthDate == null ^ BirthDate == null ? true : (birthDate != null ? birthDate.Value != BirthDate.Value : true);
                bool r3 = address == null ^ Address == null ? true : Address != address;
                bool r4 = avatar == null ^ Avatar == null ? true : (avatar != null ? !Avatar.IsEqual(avatar) : true);
                bool r = Name != name || Surname != surname || Patronymic != patronymic || Email != email;
                return r | r1 | r2 | r3 | r4;
            }

    Запостил: dotnetdeveloper, 30 Сентября 2011

    Комментарии (16) RSS

    • Может просто конкатенацией значений и последующим сравнением строк?..
      Ответить
    • О «ленивых» булевских операторах автор не слышал? А, вижу в 7-й строчке ||, это, наверное, опечатка.
      Ответить
      • 3 раза? Сознательная какая-то опечатка.
        Ответить
      • return !object.Equals(name, Name) || !object.Equals(surname, Surname) || !object.Equals(patronymic, Patronymic) || !object.Equals(email, Email) || !object.Equals(sex, Sex) || !object.Equals(avatar, Avatar) !object.Equals(birthDate, BirthDate) || !object.Equals(address, Address);

        Фиксед?
        Ответить
      • "Ленивые", "быстрые" сколько названий не встречал. Какой мудак это придумал? Всегда были побитовые и логические.
        Ответить
        • Наверное такой, который понимает разницу между «ленивыми» и не «ленивыми» вычислениями.
          Ответить
        • Ммм, и на каком стандарте вы застряли, сударь? И стандарте чего, собственно говоря? xD
          Ответить
    • >sex == null
      Не повезло =(
      Ответить
    • Кааакой сексуальный код!
      Ответить

    Добавить комментарий