我正在为我的应用程序开发一个简单的缓存类。
using System;
namespace Program {
public class Cache {
public delegate int CacheMethodInt();
public static int Get(CacheMethodInt method) {
//todo: generate cachekey here
return method.Invoke();
}
}
public class Calculator {
public int Add(int x, int y) {
return x + y;
}
}
class Program {
static void Main(string[] args) {
Calculator c = new Calculator();
Console.WriteLine(Cache.Get(() => c.Add(1, 2)));
}
}
}
在Cache:Get
我需要检查返回值是否已被缓存,如果是,则在不调用该方法的情况下返回它。问题是我不知道如何生成一个好的缓存键。在这种情况下,我想要这样的东西:
Calculator:Add:1(int):2(int)
是否可以获取此信息Cache:Get
?我正在使用.NET 2.0。