本帖最后由 yellowgiutou 于 2014-03-24 21:31:10 编辑

解决方案 »

  1.   

     public static T GetValue<K, T>(this Dictionary<K, T> s, K k)
            {
                T t;
                s.TryGetValue(k,out t);
                return t;
            }
     Dictionary<string, int> aef=new Dictionary<string,int>();
                int aa = aef.GetValuee("s");
      

  2.   


    兄台,这个和我的有点区别,我需要的含有一个自动类型转化功能~比如value存入的时候是object,取出来的时候传入<String>,则自动转换为string
      

  3.   


    兄台,这个和我的有点区别,我需要的含有一个自动类型转化功能~比如value存入的时候是object,取出来的时候传入<String>,则自动转换为string这样,不过第二参数没法指明哪一类型
     public static T GetValue<T>(this IDictionary source,object obj)
            {            return (T)source[obj];
            } aef.GetValue<string>(1);
    如果想指明那会变成 public static T GetValue<T,K>(this IDictionary source,K obj)
            {            return (T)source[obj];
            }调用会变成这样
     aef.GetValue<string,string>(1);
      

  4.   

    还有一方法就是你把C#的那几种基本类型全重载过去 public static T GetValue<T>(this IDictionary source,int obj)
            {            return (T)source[obj];
            } public static T GetValue<T>(this IDictionary source,int obj)
            {            return (T)source[obj];
            } public static T GetValue<T>(this IDictionary source,string obj)
            {            return (T)source[obj];
            }
     public static T GetValue<T>(this IDictionary source,long obj)
            {            return (T)source[obj];
            } public static T GetValue<T>(this IDictionary source,double obj)
            {            return (T)source[obj];
            }等。。这样。。
      

  5.   

    T2 GetValue<T1, T2>(this Dictionary<T1, T2> dict, T1 key)
      

  6.   


    兄台,这个和我的有点区别,我需要的含有一个自动类型转化功能~比如value存入的时候是object,取出来的时候传入<String>,则自动转换为string这样,不过第二参数没法指明哪一类型
     public static T GetValue<T>(this IDictionary source,object obj)
            {            return (T)source[obj];
            } aef.GetValue<string>(1);
    如果想指明那会变成 public static T GetValue<T,K>(this IDictionary source,K obj)
            {            return (T)source[obj];
            }调用会变成这样
     aef.GetValue<string,string>(1);
    兄台威武!