4
Почему ковариация и контравариантность не поддерживают тип значения
IEnumerable<T>является ко-вариантом, но не поддерживает тип значения, только ссылочный тип. Приведенный ниже простой код успешно скомпилирован: IEnumerable<string> strList = new List<string>(); IEnumerable<object> objList = strList; Но переход от stringк intполучит скомпилированную ошибку: IEnumerable<int> intList = new List<int>(); IEnumerable<object> objList = intList; Причина объясняется в MSDN : Дисперсия применяется только к …