Dlaczego właściwość otrzymuje błąd podczas kompilacji metody?Nieprawidłowa wariancja: parametr typu "T" musi być niepoprawnie poprawny w "UserQuery.IItem <T> .ItemList". "T" jest kowariantem
public interface IFoo {}
public interface IBar<out T> where T : IFoo {}
public interface IItem<out T> where T: IFoo
{
// IEnumerable<IBar<T>> GetList(); // works
IEnumerable<IBar<T>> ItemList { get; set; } // Error!
}
Błąd:
Invalid variance: The type parameter 'T' must be contravariantly valid on 'UserQuery.IItem<T>.ItemList'. 'T' is covariant.
Prawdopodobny duplikat [T musi być sprzeczny z prawdą] (https://stackoverflow.com/questions/5041664/t-must-be-contravariantly-valid) –