Си диез / Говнокод #24899 0 123456789 private static readonly ConcurrentDictionary<Expression, object> CachedFunctions; public static Func<TEntity, bool> AsFunc<TEntity>(this object entity, Expression<Func<TEntity, bool>> expr) where TEntity : class, IEntity { //@see http://sergeyteplyakov.blogspot.ru/2015/06/lazy-trick-with-concurrentdictionary.html return (Func<TEntity, bool>)CachedFunctions.GetOrAdd(expr, id => new Lazy<object>( () => CachedFunctions.GetOrAdd(id, expr.Compile()))); } Вот так хорошая идея ломается о кривую реализацию. Вместо того чтобы сохранить в кэш требуемый тип, сохраняем туда Lazy, возвращающий себя же :) Запостил: leff, 11.10.2018 (Updated 11.10.2018) Комментарии (4) RSS guest 8 лет ago # 0 "OBEH" не приходил? На "PHP" перевести не просил? Ответить OBEH 8 лет ago # 0 ⇈ Переведи на "PHP". Ответить guest 8 лет ago # 0 ⇈ Зачем ты ему напомнил? Ответить Steve_Brown 8 лет ago # 0 Сложна Ответить Добавить комментарий Отменить ответ Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю: А не использовать ли нам bbcode? [b]жирный[/b] — жирный [i]курсив[/i] — курсив [u]подчеркнутый[/u] — подчеркнутый [s]перечеркнутый[/s] — перечеркнутый [blink]мигающий[/blink] — мигающий [color=red]цвет[/color] — цвет (подробнее) [size=20]размер[/size] — размер (подробнее) [code=<language>]some code[/code] (подробнее)
Комментарии (4) RSS