这里的缓存返回值是什么这会是什么样子,如果我可以修改有问题的类伪代码扩展方法
public class Foo
{
private TheDataType _Data;
public TheDataType GetData()
{
if (_Data != null)
return _Data;
// fetch/generate data
return _Data;
}
}
我如何把它变成一个扩展方法?该_Data
的定义/范围是什么困扰着我......
================================ ================
这可能是最接近我想要什么,但觉得像这么简单的东西矫枉过正
public static class FooExtensions
{
private static ConcurrentDictionary<Foo,TheDataType> DataCache = new ConcurrentDictionary<Foo,TheDataType>();
public static TheDataType GetData(this Foo foo)
{
TheDataType data;
if (DataCache.TryGetValue(foo, out data))
return data
// fetch/generate data
DataCache.Add(foo, data);
return data;
}
}
能否请你更具体?你想要延续什么课程?这可能是“你想使用扩展方法,因为它们很酷,但你真的不需要扩展方法”。 – qJake
@SpikeX我只想要一个简单的实例级高速缓存,用于执行某些邪恶并经常被称为安静的方法。 –