我创建了一些静态实用程序方法,用于缓存对象。
public static class CacheProductView
{
static object _lock = new object();
static string _key = "product-view";
public static IEnumerable<Product> Select()
{
var obj = CacheObject;
if (obj == null)
{
lock (_lock)
{
obj = CacheObject;
if (obj == null)
{
obj = CreateCacheObject();
}
}
}
}
}
这是我使用的方法的代码片段。如您所见,我使用经典的.Net缓存模式,但我对静态类中的静态变量有疑问。
静态类中的静态变量是唯一的吗?例如,如果我克隆该类并替换&#39;产品&#39;对于&#39; Order&#39;,将_lock和_key对象限定为类或应用程序。显然,如果答案是后者,则需要给出唯一的名称。
所有帮助和建议表示赞赏。
答案 0 :(得分:0)
回答您的问题 - 每种类型都定义了静态字段和属性。
关于什么在类型和实例中的位置的伟大文章
http://www.codeproject.com/Articles/20481/NET-Type-Internals-From-a-Microsoft-CLR-Perspecti
除此之外 - 你提出的模式不是一个好方法。