假设我有以下三个类/接口:
public interface IImportViewModel
{
}
public class TestImportViewModel : IImportViewModel
{
}
public class ValidationResult<TViewModel> where TViewModel : IImportViewModel
{
}
由于TestImportViewModel实现了IImportViewModel,为什么以下代码无法编译?
ValidationResult<IImportViewModel> r = new ValidationResult<TestImportViewModel>();
我理解 "无法隐式将类型 'ValidationResult' 转换为类型 'ValidationResult'" 的错误信息的意思。但我不明白为什么会出现这种情况。这不应该是协变吗?