【发布时间】:2020-01-07 15:33:26
【问题描述】:
这段代码:
public T Foo<T>()
where T : class?
{
return null;
}
给出以下错误:
当 'T' 不可为空时,空字面量会引入空值 引用类型
当我们说 T 可以为空时,我不明白为什么我们不能返回 null。如果我们另外尝试返回T?,我们会得到一个错误,T 必须是不可为空的。
似乎不可能同时拥有一个可为空的约束并返回一个可为空的结果。
【问题讨论】:
-
您希望多久发布一次完全相同的问题?见stackoverflow.com/questions/59631254/… 和stackoverflow.com/questions/59630532/…
-
虽然看起来像这样,但这并不是同一个问题
-
@PavelAnikhouski,在某种程度上。 github上的这些问题并没有真正的答案。而且我想知道如何使用可空约束返回可空,这似乎是不可能的
-
显然,在当前的实现中,由于提到的错误,它根本不可能。当然 github 上没有答案,因为那个 bug 没有解决。那么你对这里有什么期望呢?
标签: c# generics nullable-reference-types