c# - 为什么我会收到可空类型可能出现空赋值的警告

标签 c# null

class Test {
}

//Main method
Test ccc = null;
string sss = null;

我想知道为什么当我将 null 分配给字符串或类时会收到警告?两者都完全可以为空。如果我添加可为空的 ? 注释并说

Test? ccc = null;
string? sss = null;

然后警告就会消失。但内部没有任何改变。这有什么意义?

最佳答案

What is the point of this?

重点是,如果引用类型的值可以为空,也可以不为空,您可以尝试在存在或不存在 ? 标记的情况下进行通信。 C# 编译器具有试图为您提供帮助的静态分析,因此您不会像在旧版本的 C# 中那样容易遇到 NullReferenceException

如果您不喜欢它,可以将可空上下文设置为“禁用”。查看链接Nullable reference type了解更多。

关于c# - 为什么我会收到可空类型可能出现空赋值的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73512637/

相关文章:

java - Environment.getExternalStorageDirectory() 返回 null

iphone - String isNullOrEmpty 作为类别

sql-server - 如何在 SQL Server 中查找非空约束的名称

c# - 如何解析此 HTML 以获得我想要的内容?

c# - 在 EF 6 中设置值和处理并发

c# - 也许 monad 使用表达式树?

mysql - 每当包含的值为 NULL 时,SQL 查询为 SUM(expression) 返回 NULL

c# - 如何获取列表框中商品的价格总和?

C# WMPLib mp3 的持续时间

javascript - 如何从 ASP.Net 发布然后重定向到外部 URL?