说我有以下三个类/接口:为什么这个泛型类型不能转换?
public interface IImportViewModel
{
}
public class TestImportViewModel : IImportViewModel
{
}
public class ValidationResult<TViewModel> where TViewModel : IImportViewModel
{
}
由于TestImportViewModel实现IImportViewModel,为什么会下无法编译?
ValidationResult<IImportViewModel> r = new ValidationResult<TestImportViewModel>();
我明白了什么错误消息“无法隐式转换类型‘的ValidationResult’到‘的ValidationResult’”的意思。我只是不明白为什么会出现这种情况。这不是协变性吗?
我假设你类_TestImportViewModel_应该是_TViewModel_? (上面的代码根本不显示类TViewmModel)。 –
是的。 TestImportViewModel实现IImportViewModel从而__should__能够被用作TViewModel实现作为TViewModel:IImportViewModel。 – devlife
@Sam TViewmModel(又名)是IImportViewModel类型,它不是一个类。 –
Reniuz