我看过类似的问题,尽管我的情况似乎有所不同。
对于此代码:
public interface MyInterface<out T> {
bool TrySomething(out T val);
}
我在 C# 7.2 上收到此错误:
无效方差:类型参数“T”必须在“MyInterface.TrySomething(out T)”上始终有效。“T”是协变的。
这是一个错误,还是我错过了什么?我没有在T
此处提供值,而是将其取出(即读取,因此在 . 中使用out
方法参数修饰符TrySomething
。那么,为什么它不编译?