【问题标题】:What does Nullable Annotation exactly mean?Nullable Annotation 到底是什么意思?
【发布时间】:2021-05-09 17:14:04
【问题描述】:

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

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

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

【问题讨论】:

  • 他们的意思是像int这样的数字类型?问号表示可以为空。文档说你不能使用 qustion 标记。
  • 作为参考(希望能提供更多信息):stackoverflow.com/questions/55492214/…
  • @jdweng 但是当我将属性设置为注解时,int? i = null; 还是可以的
  • 我认为它指的是 CONTEXT,它是 Entity 基类用来连接数据库的。我认为这是处理像 DateTime 这样在 Net 中不能为空的情况,但许多数据库确实允许 DateTime 为空。
  • @jdweng Variables of a reference type, string for example, are non-nullable. All nullability warnings are disabled. int? 不是引用类型,所以我不确定该评论与此有何关联。

标签: c# c#-8.0 non-nullable


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-07
    • 2017-07-20
    • 2014-09-23
    • 2014-07-25
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多