protected override T GetData<T>(IAspect aspect)
        {
            if (ImplementionByVer == null)
                throw new Exception("");            T result = imp.GetDeliveryData(aspect);  //这里返回的是dataset
            return result;            
        }这段代码编译无法通过,请问怎么解决?

解决方案 »

  1.   

    T result = imp.GetDeliveryData(aspect);  //这里返回的是dataset什么意思?
      

  2.   


    imp.GetDeliveryData(aspect) 的返回值是DataSet
      

  3.   

     T result = imp.GetDeliveryData(aspect);//这里返回的是dataset
    如果这里返回的是Dataset,那你这个result不就只能是Dataset或是能转换成Dataset类型的类型了, 那么你这个就不能构成泛型了,那当然通不过泛型.举个简单的例子: 
    int a= GetData<int>(b);
     T result = imp.GetDeliveryData(aspect);  
                return result;
    而你返回的是Dataset已经固定了,也就没办法转成int
      

  4.   


            protected override T GetData<T>(IAspect aspect)
            {
                if (ImplementionByVer == null)
                    throw new Exception("");            T result = imp.GetDeliveryData(aspect);  //这里返回的是dataset
                return result;            
            }
    我的想法是这样的:
     protected override T GetData<T>(IAspect aspect)
    是从基类继承的,基类不知道子类会返回什么类型。
    所有用范型<T>作为返回值。(因为我不想用Object)
    子类override父类的方法后,返回dataset或者int我的想法有问题么?