【发布时间】:2020-06-19 15:15:59
【问题描述】:
我有一个项目启用了新的Nullable reference type feature
<Nullable>enable</Nullable>
现在让我们考虑这段代码
public class Foo { }
var foo = new Foo();
编译器认为foo 变量可以为空(Foo?)。
这是为什么?我不明白。
现在启用 Nullable 引用类型功能后,返回的 Foo 对象不应为 null,因为它是不可为 null 的类型。
如果我希望它可以为空,我会指定它有一个 Foo?
那么为什么编译器说它是一个可为空的变量呢?
谢谢
编辑
这是我在这里描述的屏幕截图。当您将鼠标悬停在 foo 变量上时
【问题讨论】:
-
无法重现,
var foo = new Foo();不显示任何警告。Foo类里面是什么? -
Foo类中没有任何内容,如我的代码示例所示,它是空的。没有警告,但在 VS 中,您将鼠标悬停在foo变量上,它说它是Foo? -
这里提出了类似的问题:Why does Visual Studio Type a Newly Minted Array as Nullable? 它回答了你的问题吗?
标签: c# .net-core nullable-reference-types