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

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public bool IsEmpty()
            {
                int x = 0;
                x += EntityType.Length == 0 ? 1 : 0;
                x += EntityTypeName.Length == 0 ? 1 : 0;
                x += EntityDisplayName.Length == 0 ? 1 : 0;
                x += EntityId == Guid.Empty ? 1 : 0;
    
                return x == 0 ? false : true;
            }

    Аритметичный if :)

    Запостил: bugotrep, 16 Августа 2009

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

    • и ?
      Ответить
    • return (EntityType.Length == 0) && (EntityTypeName.Length == 0) && (EntityDisplayName.Length == 0) && (EntityId == Guid.Empty);
      Ответить
      • Неа. Метод возвращает true, когда хотя бы один пустой. Написано так, что нужно долго въезжать.
        Поэтому переписать можно так:
        return (EntityType.Length == 0) || (EntityTypeName.Length == 0) || (EntityDisplayName.Length == 0) || (EntityId == Guid.Empty);
        Или, полагая, что Length >= 0
        return (EntityType.Length * EntityTypeName.Length * EntityDisplayName.Length == 0) || (EntityId == Guid.Empty);
        Ответить
        • я лох
          Ответить
        • а почему не делать так:
          bool result = true;
          result = result && (EntityType.Length == 0);
          result = result && (EntityTypeName.Length == 0);
          ....
          return result;
          Ответить
          • в сравнении с этим
            return (EntityType.Length == 0) && (EntityTypeName.Length == 0) && (EntityDisplayName.Length == 0) && (EntityId == Guid.Empty);
            Ответить
            • В общем случае Ваша конструкция работает медленнее - почитайте про short-circuit evaluation
              Ответить
              • тут вопрос не в оптимизации а в читабильности кода
                это в 100 раз важнее :)
                Ответить
                • Правильный код из ответа Dimarius'а можно записать и так:
                  return
                  (EntityType.Length == 0) ||
                  (EntityTypeName.Length == 0) ||
                  (EntityDisplayName.Length == 0) ||
                  (EntityId == Guid.Empty);

                  Мне будет больно слышать, если это нечитаемо :)
                  Ответить
    • как будто ассемблерщик писал, у них вечно вот такие вот костыли
      Ответить

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