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#"?
      Ответить
      • В том что он под .NET, а там либы вкусные. В остальном – говно, даже пятнашки в 100 строк не влезли, код Red уложился в 30 строчек, J непомню сколько, забыл с какой учётки постил.
        Ответить
        • 26
          Ответить
        • Но ".NET" только под "Windows".
          Ответить
          • Есть "Mono", но там уже интересные либы могут отсутствовать.
            Ответить
            • Поэтому я за "PHP": все необходимые библиотеки уже встроены, их не надо скачивать, устанавливать, портировать - просто программируешь и течёшь, как сука.
              Ответить
        • Уж по лучше джавы
          И генерики в рантайме
          и linq
          Ответить

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