Nullable Annotation 到底是什么意思?

What does Nullable Annotation exactly mean?

在 Visual Studio 2019 年,我可以将 Build-Properties 中的 Nullable Option 设置为 Annotation。 当我阅读此设置的文档时:

引用类型的变量,例如字符串,是不可为空的。所有可空性警告均已禁用。

现在我想知道这个设置的确切用途是什么。变量不可为空,但没有警告。 C# 8 的 Non-Nullable-Feature 仅生成警告。为什么有一个设置说变量不可为空但没有警告?

#nullable enable annotations 指令和相应的项目设置对于在准备好处理代码中的警告之前向 public API 添加注释很有用。

在这样的可为空的上下文中,string 表示“不可为空的字符串”,但如果您将 null 分配给该类型的变量或取消引用类型为 [=12 的变量,则不会产生警告=].