Say mam następujące trzy klasy/interfejsy:Dlaczego ten typ ogólny nie może zostać przekonwertowany?
public interface IImportViewModel
{
}
public class TestImportViewModel : IImportViewModel
{
}
public class ValidationResult<TViewModel> where TViewModel : IImportViewModel
{
}
Jak TestImportViewModel realizuje IImportViewModel, dlaczego następujących nie skompilować?
ValidationResult<IImportViewModel> r = new ValidationResult<TestImportViewModel>();
rozumiem co się komunikat o błędzie „Nie można niejawnie przekonwertować typu«ValidationResult»do«ValidationResult»” środków. Po prostu nie rozumiem, dlaczego tak się dzieje. Czy to nie byłaby kowariancja?
Ja zakładając, że klasa _TestImportViewModel_ ma być _TViewModel_? (Powyższy kod w ogóle nie pokazuje klasy TViewmModel). –
Tak. TestImportViewModel implementuje IImportViewModel, a tym samym __ może być użyty jako implementacja TViewModel jako TViewModel: IImportViewModel. – devlife
@Sam TViewmModel (alias) jest typem IImportViewModel nie jest klasą. –
Reniuz