【发布时间】:2020-07-25 18:28:12
【问题描述】:
上下文
C# 8.0 具有non-nullable reference types 的这个特性。
string notNull = "Hello";
string? nullable = default;
notNull = nullable!; // null forgiveness
问题
有什么原因不总是在 *.csproj 文件中启用不可为空性?
你有清单吗?比如,“不要<Nullable>enable</Nullable> if ... a)... b)... c)...”?
我能想到的
我能想到的唯一原因是与现有代码的向后兼容性。含义:打开该功能并修复所有编译器错误并调整代码可能太耗时且因此昂贵;也许也容易出错。
我已经用谷歌搜索了,但没有找到任何其他原因:when not to use non-nullable refernce types in c# - Google Search
文档
- 微软文档 → Nullable reference types
- 这篇博文给出了很多说明性的代码示例:Containing Null with C# 8 Nullable References, Frank A. Krueger
附言
请让我知道 Stack Overflow 是否是问这个问题的错误地点,以及哪个 Stack Exchange 网站更适合。
我认为 Stack Exchange 可能是正确的位置,因为 What topics can I ask about here?
- “软件开发独有的实用、可回答的问题”
【问题讨论】:
标签: c#-8.0 non-nullable