Почему свойство получает ошибку при компиляции метода?
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!
}
Ошибка:
Неверная дисперсия: параметр типа 'T' должен быть контравариантно действительным в 'UserQuery.IItem <T> .ItemList'. "T" ковариантно.