如果一个方法返回值不确定的时候怎么解决   
     是否有泛型的方法    举个例子说明下   谢谢 

解决方案 »

  1.   

    看看net框架内部一个委托定义方式:func<> // 摘要:
        //     封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。
        //
        // 参数:
        //   arg:
        //     此委托封装的方法的参数。
        //
        // 类型参数:
        //   T:
        //     此委托封装的方法的参数类型。
        //
        //   TResult:
        //     此委托封装的方法的返回值类型。
        //
        // 返回结果:
        //     此委托封装的方法的返回值。
        [TypeForwardedFrom("System.Core, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089")]
        public delegate TResult Func<in T, out TResult>(T arg);
      

  2.   

    单个方法的返回值不确定,你可以考虑返回object,如果调用时能确定类型,可以用泛型,例如
    public T GetCopyData<T>(T t1) where T : ICloneable
    {
        return (T)t1.Clone();
    }
      

  3.   

    这种要求我通常采用func<T,U>延迟确定比如    private U myconvert<T,U>(T obj,Func<T,U> func)
            {
                return func(obj);
                
            }那么调用方式可以是
     string str=myconvert(1, c => c.ToString());//int2string          int rint = myconvert("1", c => Convert.ToInt32(c));//string2int
      

  4.   

    泛型是在编译时就确定具体的类型,你的情况不适合用泛型,建议用返回值object,在调用方转换。
      

  5.   

    不确定类型可以返回 default(T)
      

  6.   

    返回Object绝对不会错,哈哈要不就弄上个弱类型   PS:int? index;
      

  7.   

    C#中函数返回值为泛型,可以像如下代码:
            public T raise<T, T1, T2>(T1 t1, T2 t2)
            {            
                string x = "";
                return (T)(Object)x;
            }
    调用方如:
                String s1 = null;
                String s2 = null;
                string re = c.raise<string, string, string>(s1, s2);
      

  8.   

     谢谢楼上的   我想做个数据库访问的dll 把一些重复的代码打包成方法 供别人去用 
      因为每个人用的返回类型都不一样 所有要做个泛型泛型的方法 
      

  9.   

    问题补充下   可以在定义委托时定义一个泛型返回值的类型吗  因为我委托的方法 返回值不确定    除了object以外 有方法解答吗