本文来告诉大家如何实现一个 WeakLazy 方法
代码很简单,请看代码
class WeakLazy<T> where T : class, new()
{
WeakReference<T> _instance = new WeakReference<T>(null);
public T Value
{
get
{
lock (_instance)
{
T value;
if (!_instance.TryGetTarget(out value))
{
value = new T();
_instance.SetTarget(value);
}
return value;
}
}
}
}
这样就能做到一个简单的缓存