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

    +121

    1. 1
    2. 2
    3. 3
    4. 4
    if (Convert.ToBoolean(ViewState["IsProgram"]) != null && Convert.ToBoolean(ViewState["IsProgram"]))
    {
        // do work
    }

    Это взорвало мой мозг...

    Запостил: rstrg, 13 Ноября 2010

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

    • Никогда не пишите с бодуна!
      Ответить
    • урок конвертации пройден )
      Ответить
    • это не true, это — труЪ.
      Ответить
    • В C#, у bool, значение null бывает?
      Ответить
      • у примитива не бывает конечно, а вот у враппера запросто
        Ответить
      • ну смысл в том что Convert.ToBoolean(ViewState["IsProgram"]) != null всегда будет true, видимо это написали на всякий случай, не понимая как это на самом деле работает.
        Чтобы это не было говонокодом нужно было написать так:
        if (Convert.ToBoolean(ViewState["IsProgram"]))
        {
        // do work
        }
        Ответить
        • Очевидно, что стоило написать:
          if (this.ViewState["IsProgram"] as bool? ?? false) { }
          Ответить
          • не обязательно as
            if ((bool?)this.ViewState["IsProgram"] ?? false) { }
            тоже вполне подходит
            Ответить

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