Си диез / Говнокод #22670 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
public class MobileObjectCache<TKey, TItem> : ConcurrentDictionaryCache<TKey, TItem> where TItem : IIdentified<TKey>, IDataRecordLoadable, new()
{
    public MobileObjectCache(IdSeries series)
        : base(series)
    {
        
    }

    protected override void OnUpdate(TKey key, TItem oldItem, TItem newItem)
    {
        MobileObject mo = oldItem as MobileObject;
        mo.Description = (newItem as MobileObject).Description;
    }
}

Главный разработчик знает как правильно расширять Generic-классы.

Запостил: random12 random12, (Updated )

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

  • Судя по минусам, прикол получился сложный. Разжую.

    public class MobileObjectCache : ConcurrentDictionaryCache<int, MobileObject>
    {
        public MobileObjectCache(IdSeries series)
            : base(series)
        {
        }
    
        protected override void OnUpdate(int key, MobileObject oldItem, MobileObject newItem)
        {
            oldItem.Description = newItem.Description;        
        }
    }
    Ответить
  • а что будет если в строке 11 oldItem не будет унаследован от MobileObject или в строке 12 newItem не будет унаследован от MobileObject ?
    Ответить
    • в какой строке это указанно?

      where TItem : IIdentified<TKey>, IDataRecordLoadable, new()

      в этой строке такого лимитирования нет. а значит на нет и суда нет
      Ответить
      • > в этой строке такого лимитирования нет

        То, что в той строке его нет, не означает, что его вообще нет. Оно в голове того, кто написал этот бред, что проявляется в строке 11. Я тоже похожий код видел на практике:
        class Clusterizer<K, V> {
          // ...
          void doSomething(K k, V v) {
            Long i = (Long) k; // у меня женерик вместо головного мозга
            // use i
          }
        }
        Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8