99 Insert将使用相同的Key覆盖现有的缓存值;Add如果存在具有相同键的缓存值,则失败(不执行任何操作)。因此,有一种说法是您应该始终使用插入,因为代码第一次运行时,它将把您的对象放到缓存中,而当代码随后运行时,它将更新缓存的值。 — 菲尔·珀斯洛夫 source 6 您认为添加方法完全没有用吗? — guchko-gleb 2011年 2 @ guchko-gleb如果您对Cache的使用在代码的给定步骤中永远不会遇到现有的缓存值,那么将欢迎Add的Exception。 — 克里斯·莫斯基尼 10 旁注:如果根据MSDN — Michael McGuire
4 Cache.Add()还从Cache添加对象后返回缓存的对象: string cachedItem = Cache.Add("cachedItem", ....); — 阿尔特姆G source 7 Add返回缓存中的现有值:如果要添加新项目,则返回null。如果尝试覆盖现有值,则什么也不会发生,并且将返回高速缓存中的值。 — 马克·索沃
-1 您可以使用Cache.Add()或Cache.Insert()方法来缓存数据。两者之间的唯一区别是,Cache.Add()method返回要缓存的对象。因此,假设您要使用对象并对其进行缓存。您可以在的帮助下,在一行代码中执行此操作Cache.Add()。 Cache.Insert()方法有4种不同类型的重载方法,而Cache.Add()只有一种。 — 谢克尔·谢特 source 17 我今天浪费了很多时间,因为Cache.Add不会覆盖缓存中已经存在的值,并且不会引发异常。 — 史蒂夫 9 @steve有一个非常重要的观点。从MSDN(重点是我的):...如果您使用该Add方法,并且缓存中已经存在具有相同名称的项目,则该方法将不会替换该项目,也不会引发异常。 — 迈克尔 1 Add返回缓存中的现有值:如果要添加新项目,则返回null。如果尝试覆盖现有值,则什么也不会发生,并且将返回高速缓存中的值。 — 马克·索沃