c# - 可空注释到底意味着什么?

标签 c# c#-8.0 non-nullable

在 Visual Studio 2019 中,我可以将“构建属性”中的“可为空”选项设置为“注释”。 当我阅读此设置的文档时:

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

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

最佳答案

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

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

关于c# - 可空注释到底意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67460464/

相关文章:

.net-core - JilOutputFormatter : Synchronous operations are disallowed. 调用 WriteAsync 或将 AllowSynchronousIO 设置为 true

language-design - 不可为空的引用类型

C# 8 异步流与 REST/RPC

c# - 如何允许 IErrorHandlers 处理 WCF 中的 AccessViolationExceptions?

c# - Server.Transfer 在 C# 代码中。服务器在当前上下文中不存在

c# - 如何使用Any()而不是RemoveAll()来排除列表项?

c# - 在 C# 中比较按位相等的非托管类型的值

flutter - 不可为 null 的实例字段 ['controller' ] 必须在 flutter 中初始化

c# - 无法在我的 .NET Core 单元测试项目中加载文件或程序集 Microsoft.AspNetCore.Mvc.ApiExplorer