Generics C#

using System;
using System.Collections.Generic;
using System.Text;
class MyCache {
    private static Dictionary _objectCache;
    public MyCache() {
        MyCache._objectCache = new Dictionary();
    }
    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 cache1 = new MyCache();
        string val1 = cache1.LookupValue("key1");
        MyCache cache2 = new MyCache();
        int val2 = cache2.LookupValue("key1");
    }
}