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

    +135

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    public TOscillPanel getOscillPanel(String nameTable, XmlNodeList parameters, String idCHPU)
            {
                var actions=new Dictionary<string, object>
                                {
                                    {"addParamOscill", new Action<string, string>(addParamOscill)},
                                    {"removeParamOscill", new Action<string, string>(removeParamOscill)},
                                    {"includeRealTimeMode",new Action<string>(includeRealTimeMode)}
                                };
                return (new TOscillPanel(nameTable, parameters, actions));
            }
    
    //...
                              ((Action<String, String>)_actions["addParamOscill"])(_tableChpu, ((TOptionNode)_oscillTreeView.Nodes[0]).getId());
                              ((Action<String, String>)_actions["addParamOscill"])(_tableChpu, idParameters);
    }
    else
    {
                            ((Action<String, String>)_actions["removeParamOscill"])(_tableChpu, ((TOptionNode)_oscillTreeView.Nodes[0]).getId());
                            ((Action<String, String>)_actions["removeParamOscill"])(_tableChpu, idParameters);
    }

    Это практически единственные и основные упоминания в коде контейнера _actions.
    Говорила же мне мама: "возьми динамически типизированный язык", а я её не слушал. Не мне конечно же. Код из очень крупного частного проекта.
    Динамически типизированный язык тут конечно же не нужен. Просто создаем трудности, а потом стоически их решаем.

    Запостил: Говногость, 19 Июня 2012

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

    • >Говорила же мне мама: "возьми динамически типизированный язык", а я её не слушал.
      "Не пей из копытца, козлёночком станешь".
      Ответить
    • > Динамически типизированный язык тут конечно же не нужен.
      Именно. Вместо этих _actions["removeParamOscill"](...) гораздо лучше бы смотрелось actions.removeParamOscill(...).
      Ответить
      • В крайнем случае можно использовать dynamic в конкретном месте (если версия языка позволяет, конечно).
        Ответить
    • Использование Dictionary, как хранилище переменных, чтобы потом обращаться к ним по строкам?
      Юзай class с именованными полями, например:
      class Actions
      {
        Action<string, string> addParamOscill, removeParamOscill;
        Action<string> includeRealTimeMode;
      }
      Инициализируй поля Actions в конструкторе.
      Ответить
      • А уж если динамика тоже нужна, то:
        _actionsDict = typeof(Actions).GetFields().AsParallel().ToDictionary<string, dynamic>(field => field.Name, field => field.GetValue(_actions, null));

        (?)
        Ответить
    • показать все, что скрыто2.71828 18284 59045 23536 02874 71352 66249 77572 47093 69995 95749 66967 62772 40766 30353 54759 45713 82178 52516 64274 27466 39193 20030 59921 81741 35966 29043 57290 03342 95260 59563 07381 32328 62794 34907 63233 82988 07531 95251 01901 15738 34187 93070 21540 89149 93488 41675 09244 76146 06680 82264 80016 84774 11853 74234 54424 37107 53907 77449 92069 55170 27618 38606 26133 13845 83000 75204 49338 26560…
      Ответить

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