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

    0

    1. 1
    var result = IsConnected  && dataMax != "" ? true : !IsConnected && dataMin != "" ? true : false;

    Обфускация условия говнокодом!

    Запостил: MatureGovnocoder, 02 Июля 2020

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

    • Я не выдержал и решил искоренить это зло картой Карно!
      Ответить
      • > картой Карно

        По-моему это оверкилл для такой простой формулки.
        Ответить
    • if (IsConnected)
          result = dataMax != "";
      else
          result = dataMin != "";
      
      // ну или
      result = IsConnected ? (dataMax != "") : (dataMin != "");
      Ответить
      • bormand, зачем так сложно?
        var result = IsConnected && !string.IsNullOrEmpty(dataMax) || !IsConnected && !string.IsNullOrEmpty(dataMin);
        И у вас ошибка в if, неверное логическое условие.
        Ответить
        • Не знаю, я не люблю формулы с кучей и и или. Читаются сложно. Раз уж на нуллы проверяем - то я бы вот так сделал:
          result = IsConnected ? !string.IsNullOrEmpty(dataMax)  : !string.IsNullOrEmpty(dataMin);
          
          // ну или даже так, чтобы вообще наглядно стало
          
          result = !string.IsNullOrEmpty(IsConnected ? dataMax : dataMin);
          Ответить
          • >!string.IsNullOrEmpty(IsConnected ? dataMax : dataMin);
            именно так и надо
            или так, что тоже самое
            https://govnokod.ru/26786#comment556887

            И судя по капитализации IsConnected это проперти (а не филд и не переменная) и в теории может поменяться между вызовами

            какой си шарп!

            Так что вариант с одной проверкой лучше
            Ответить
        • (IsConnected ? dataMax : dataMin) != "";
          Ответить
        • > ошибка в if

          Не вижу. Можно пример, на котором ответ неправильный?
          Ответить

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