Контравариантность в словарном значении

Почему это не законный код?

 public interface IExcelExport<in T>
{
    byte[] ExportSheetsToExcel(IDictionary<string, IEnumerable<T>> data, bool formatDateColumns = true);
}

Что дает эту ошибку.

Invalid variance: The type parameter 'T' must be invariantly valid on 'IExcelExport<T>.ExportSheetsToExcel(IDictionary<string, List<T>>, bool)'. 'T' is contravariant.

Почему я не могу использовать контравариантный тип в качестве значения словаря? Есть потенциальные обходные пути?

0 ответов

Другие вопросы по тегам