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

    +2

    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
    internal class DeviceState
    {
        internal string PrimaryState { get; private set; }
        private HashSet<string> _multiplieStates;
    
        // много кода...
    
        internal string[] GetStates()
        {
            string states = PrimaryState;
            if (_multiplieStates.Count > 0)
            {
                states += '|' + string.Join("|", _multiplieStates);
            };
            return states.Split('|');
        }
    }

    Запостил: spectrezero, 11 Ноября 2018

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

    • Все наверное смеются с того что автор не умеет объединить массив с множеством, но мне кажется тут и в самой архитектуре какой-то мусор.

      Когда и где создается _multiplieStates? Что за слово multiplie? Это по-французски?
      Почему PrimaryState не лежит в этих самых states?
      Что если в state будет вертикальная черта?
      Наконец, если state перестанет быть строкой то код бомбанет. Я бы параметризовал этот класс типом используя обобщенное программирование.
      Конечно, в нынешнем примере этого не сделать, но если заменить дурацкий Join на объединение массива со множеством то может выстрелить.
      Ответить
    • показать все, что скрытоВ чём понт "C#"?
      Ответить

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