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

    +129

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private string              fEmail;
    ...
    public string Email  
    { 
        get {return fEmail = fEmail != null ? fEmail: string.Empty;}
        set {fEmail=value;}
    }

    чтобы проверить на нулл переменную fEmail, ее нужно зачем то присвоить самой же себе, долго вкуривал, но менять не стал. Наверное это заморочки с энхибернэйт

    З.Ы. версия фреймворка для которого было написано это чудо 1.1

    Запостил: jackman, 21 Августа 2009

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

    • fEmail = ((fEmail != null) ? fEmail: string.Empty); - так понятней?
      Ответить
    • аха :) теперь просек
      Ответить
    • что-то это не похоже на заморочки с NHibernate, там для избежания подобного чуда можно пользовательские типы писать.
      хотя если это 1.1... оператор "??", который был бы здесь уместен, только в двойке вроде ж появился.
      Ответить
    • nhibernate тут не при чем... да и ошибка может быть если пропертя замаплена и есть lazy-loading (проперти должны быть virtual по правилам), в этом случае данные выделывания с результатом не помогут.
      Ответить
    • говнокод нот детектед
      Ответить
      • изменение состояния в геттере - говнокод
        Ответить
        • т.е. у вас во всех проектах всегда геттер только возращает закрытое поле?
          Ответить
          • или как-то вычисляет значение, но не изменяет ничего.
            в данном случае лучше
            get {return fEmail;}
            set {fEmail = (value == null ? string.Empty : value);}
            Ответить
            • Это не равноценная замена, так как приватному полю может быть null присвоен где-то в коде...
              Ответить
              • Можно те присваивания заменить.
                или
                get {return fEmail != null ? fEmail : string.Empty;}
                set {fEmail=value;}
                Ответить
                • вообще это не триадсэйф, например после проверки fEmail != null и перед возвращением значения, в другом треде можно свойству Email присвоить null, тогда как код который вызывает гетер не ожидает null
                  Ответить
    • долбоёб детектед. тернарный операции надо знать
      Ответить
      • ты ступил! где ты увидел что я незнаю тернарных операции! в гетере у свойства каждый раз присваеваеться значение и ты считаешь что проблема в том что я незнаю тренарных операций!! ты не адекватен
        Ответить
        • В пизду такой код ИФ блять есть для такого говна
          Ответить
    • А оно вообще работает?
      Вообще то геттер должен вернуть Стринг, а результат операции fEmail="какая-то строка" точно не типа стринг.
      Ответить

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