protected override T GetData<T>(IAspect aspect) { if (ImplementionByVer == null) throw new Exception(""); T result = imp.GetDeliveryData(aspect); //这里返回的是dataset return result; }这段代码编译无法通过,请问怎么解决?
T result = imp.GetDeliveryData(aspect); //这里返回的是dataset什么意思?
imp.GetDeliveryData(aspect) 的返回值是DataSet
T result = imp.GetDeliveryData(aspect);//这里返回的是dataset 如果这里返回的是Dataset,那你这个result不就只能是Dataset或是能转换成Dataset类型的类型了, 那么你这个就不能构成泛型了,那当然通不过泛型.举个简单的例子: int a= GetData<int>(b); T result = imp.GetDeliveryData(aspect); return result; 而你返回的是Dataset已经固定了,也就没办法转成int
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我的想法有问题么?
imp.GetDeliveryData(aspect) 的返回值是DataSet
如果这里返回的是Dataset,那你这个result不就只能是Dataset或是能转换成Dataset类型的类型了, 那么你这个就不能构成泛型了,那当然通不过泛型.举个简单的例子:
int a= GetData<int>(b);
T result = imp.GetDeliveryData(aspect);
return result;
而你返回的是Dataset已经固定了,也就没办法转成int
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我的想法有问题么?