Nullable Annotation 到底是什么意思?

问题描述

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

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

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

解决方法

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

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