从另一个泛型类继承泛型类

时间:2013-09-18 12:06:09

标签: c#-4.0 generics

这是我的班级层次结构

BaseEntityCRUDGridViewModel :     BaseGenericViewModel

{ }

public class BaseGenericTests<ST> : SilverlightTest 
where ST : BaseGenericViewModel

我该怎样做

public class BaseEntityCRUDGridTests<T> : BaseGenericTests<T> 
where T : BaseEntityCRUDGridViewModel

它给了我以下错误

Error   5   The type 'T' cannot be used as type parameter 'ST' in 
the generic type or method 'Commons.UnitTests.BaseGenericTests<ST>'. 
There is no implicit reference conversion from 'T' 
to 'ViewModels.BaseGenericViewModel'.       

path \ BaseNavigationTests.cs 23 27 Commons

1 个答案:

答案 0 :(得分:2)

我建议以这样的方式重构,即两个ViewModel类都实现相同的接口。然后,您可以将接口要求放在通用基类上,您可以执行以下操作:

public class SubGenericTest<T> : BaseGenericTest<T> where T:IGenericVewModel, SubViewModel