3
public interface SomeInterfaceName<out T> where T : struct
{
T? SomePropertyName { get; }
}
我得到的错误是:当创建差异接口
错误CS1961:无效的方差:类型参数“T”必须是“SomeInterfaceName.SomePropertyName”目不暇接有效。 'T'是协变的。
我不要需要这是协变。我也可以删除out关键字。但是,然后Resharper建议我可以使用Covariance,我同意,我不明白为什么我不能。我只使用T作为返回值。还是因为可空<>不支持它?
任何人都可以解释错误吗?