我试图理解这两个项目之间的区别,以及一个(如果有的话)是“正确”的方式。
我想将一个对象添加到缓存中。例如:
List<String> list = new List<String>();
list.Add("Monday");
list.Add("Tuesday");
list.Add("Wednesday");
list.Add("Thursday");
现在将列表添加到缓存中。我这样做:
System.Web.HttpContext.Current.Cache.Insert("DaysOfTheWeek", list);
或者我可以这样做吗?
System.Web.HttpContext.Current.Cache["DaysOfTheWeek"] = list;
我已经做到了,他们工作得很好。我想知道这是否会爆炸,因为这会扩大,或者它是否会产生任何后果,我不会预见到。
这是在C#,ASP.NET 4.5
中答案 0 :(得分:3)
没有区别。使用索引器(第二个示例)无论如何都只调用Insert
。您可以在reference source:
public object this[string key] {
get {
return Get(key);
}
set {
Insert(key, value);
}
}
Add
与Insert
的不同之处在于,如果密钥已存在,Add
将不会覆盖缓存中的值 - Insert
将替换已缓存的值。这在documentation of Add
:
如果具有相同键参数的项目已存储在缓存中,则对此方法的调用将失败。要使用相同的键参数覆盖现有的Cache项,请使用Insert方法。