C# Недопустимая ошибка дисперсии при наличии параметра метода out
Я смотрел на похожие вопросы, хотя мой случай кажется другим.
Для этого кода:
public interface MyInterface<out T> {
bool TrySomething(out T val);
}
Я получаю эту ошибку на C# 7.2:
Недопустимая дисперсия: параметр типа "T" должен быть неизменным для MyInterface.TrySomething(out T). "Т" является ковариантным.
Это ошибка, или я что-то упустил? Я не поставляю T
значение здесь, я получаю это (то есть чтение, следовательно, out
модификатор параметра метода в TrySomething
, Так почему же он не компилируется?