說我有以下三個類/接口:爲什麼這個泛型類型不能轉換?
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