アプリケーションの単純なキャッシュ クラスに取り組んでいます。
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 を使用しています。