using System; using System.Collections.Generic; using System.Text; class MyCache<K, V> { private static Dictionary<K, V> _objectCache; public MyCache() { MyCache<K, V>._objectCache = new Dictionary<K, V>(); } private V FindValueInDB(K key) { return default(V); } public V LookupValue(K key) { V retVal; if (_objectCache.ContainsKey(key) == true) { _objectCache.TryGetValue(key, out retVal); } else { retVal = FindValueInDB(key); } return retVal; } } class MyApp { public static void main(String[] args) { MyCache<string, string> cache1 = new MyCache<string, string>(); string val1 = cache1.LookupValue("key1"); MyCache<string, int> cache2 = new MyCache<string, int>(); int val2 = cache2.LookupValue("key1"); } }