我创建了一些用于缓存对象的静态实用程序方法。
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 缓存模式,但是我对静态类中的静态变量有疑问。
静态变量在静态类中是唯一的吗?例如,如果我克隆该类并将“产品”替换为“订单”,那么 _lock 和 _key 对象是否会被限定为该类或应用程序。显然,如果答案是后者,则需要给出唯一的名称。
所有帮助和建议表示赞赏。