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

    +122

    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
    switch (item.Value.ModuleConfiguration.SystemModule) // у свойства SystemModule тип bool, а не bool?
    {
           case true:
           {
                CreateModuleDomain<ISystemModuleProxy>(moduleContainer);
                (moduleContainer.ModuleProxy as ISystemModuleProxy).Init(moduleContainer.ModuleConfiguration, this as ISystemCoreProvider);
                   
                 break;
           }
           case false:
           {
                CreateModuleDomain<IBusinessModuleProxy>(moduleContainer);
                (moduleContainer.ModuleProxy as IBusinessModuleProxy).Init(moduleContainer.ModuleConfiguration, this as ICoreProvider);
    
                break;
           }
           default:
                break;
    }

    Фрагмент кода официального Senior Developer. Пример абсолютно надежного кода, который умеет обрабатывать даже будущие состояния булевого типа (default: break;) Будет надежен даже, если Microsoft неожиданно расширит тип состояниями, например MayBeTrue, OfCourseFalse, DontUnderstand и т.п. :)

    Запостил: anzu, 05 Мая 2011

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

    • Наивный "default" на строке 17 доставляет :)
      Ответить
    • мучо густо, синьор!

      и пусть пхп-кунак не расстраивается, до-диез скоро догонит и перегонит
      Ответить
      • сперва пусть кресты догонит
        Ответить
        • вопрос времени.
          в соседнем треде мелькала ссылка, где мсдн предлагала потенциальным до-диезным кодо-обезьянкам машинный перевод вместо справочника.
          результат не заставит себя ждать.
          Ответить
          • не надо ляля про шарп
            к любому языку и платформе можно подходить с разной степенью ответственности
            обидно временами бывает слышать
            Ответить
            • еще один до-диезник, испытывающий butt обиду за свой быдлоинструмент?
              скучно, право же.
              Ответить
              • не надо холивара
                до диез не мое "всё"
                ты неправильно понял меня
                лучше закрыть эту тему :)
                Ответить
                • знаю, знаю, в анамнезе миграция с VB и поэтому C# кажется чудесным достижением
                  Ответить
              • а сидеть под шлюхоаккаунтом было не скучно?
                Ответить
    • // у свойства SystemModule тип bool, а не bool?

      вроде здесь явно указано, вдруг
      ...
      default: //null
      break;
      ...
      Ответить
      • Вдруг не произойдёт, потому что bool не nullable (это и написано в комментарии)
        Ответить
        • Значит сделано с расчетом на то, что когда-нибудь сможет стать.
          Ответить
          • Вот как станет - так и нужно менять. Она точно так же внезапно может стать и int, но однако никаких граблей под эту потенциальную возможность закопано не было ведь.
            Ответить
          • Ну так сайт и предназначен для того, чтобы оценивать образцы творчества таких предусмотрительных людей :)
            Ответить
          • Ну как, стало?
            Ответить
        • Тут получается, что глупость помножена на безграмотность. Даже, если кто-то действительно потом изменит bool на bool?, то этот код будет продолжать выполняться как ни в чем не бывало! Логичней было бы переписать:

          default: throw new InvalidOperationException("Attention: magic boolean type!");
          Ответить
        • Ого! Юзер с id 4. С возвращением!
          Ответить
        • а чо ты такой дерзкий?
          Ответить
    • Свитч - король логики! :))
      Ответить
    • C(?:\+\+|#)? — говно.
      Ответить
      • а чего квантификатор нежадный?
        Ответить
        • Си тоже говно.
          Ответить
          • http://i044.radikal.ru/1105/42/1e63ee2201e2.png
            Ответить
            • Круто, ты знаешь про PrintScreen.
              Другого смысла я увидеть не смог.
              Ответить
          • всё-таки гуесты доставляли местами
            Ответить
            • Конечно, некоторые гуесты работали в службе доставки и в некоторые места доставляли.
              Ответить
    • оч смешно, спасибо)))
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить

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