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

    +131

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (Cache[articlesRssData] != null)
    {
         return Cache[articlesRssData] as ArticleRssData?;
    }
    
    return null;

    Запостил: uusb, 08 Августа 2012

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

    • забыл сказать что это все находится в отдельной функции, послевызова которой проверяем на null
      Ответить
    • Что значит знак вопроса тут: as ArticleRssData?;
      Ответить
      • The syntax T? is shorthand for Nullable<T>, where T is a value type. The two forms are interchangeable.

        http://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx

        P.S. Знатоки c#, поясните, пожалуйста, зачем это здесь - ведь ArticleRssData не слишком похож на value-type.
        P.P.S. Кажется понял - он описан как struct.
        Ответить
        • А как на хинди вопрос будет, так и не узнали
          Ответить
    • Ну говнокод здесь в лишних проверках. В простом случае хватило бы
      return Cache[articlesRssData] as ArticleRssData?;

      Если там будет null, то он его и вернет.
      И в оригинальном случае будет еще два поиска по кешу.
      Ответить
      • s/еще два поиска/еще один поиск/
        Ответить
        • вероятно имелось в виду: ещё два поиска помимо проверки, а не ещё один поиск помимо уже одного поиска :)
          Ответить
        • спасибо, за фикс :)
          либо "два поиска вместо одного", либо "еще один поиск" :)
          Ответить
      • Cache - скорее всего словарь, поэтому запрос будет О(1)
        Ответить
        • Скорее всего еще не значит что так оно и есть. Это ж говнокод, вдруг это обвертка над List<>-ом на тысячи элементов.
          Ответить
    • Типичный Нульшит, не?
      Ответить

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