1

这是我的班级层次结构

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'.       

路径\BaseNavigationTests.cs 23 27 Commons

4

1 回答 1

2

我建议以两个 ViewModel 类实现相同接口的方式进行重构。然后你可以把接口要求放在泛型基类上,你可以这样做:

public class SubGenericTest<T> : BaseGenericTest<T> where T:IGenericVewModel, SubViewModel
于 2013-09-18T12:13:07.790 回答