【问题标题】:.NET - Which system assemblies are annotated for nullable reference types?.NET - 哪些系统程序集被注释为可空引用类型?
【发布时间】:2021-07-07 20:36:19
【问题描述】:
我正在尝试查找有关 C# 8 的可为空引用类型功能的 .NET 系统程序集的状态。
未带注释的代码或使用早期语言版本编写的代码将被视为“null-oblivious”,这意味着编译器不会生成任何关于可空性的警告。
当涉及到在可空的启用上下文中使用系统程序集时,这真的很烦人,因为无法判断是否需要进行空检查。
有什么方法可以检查程序集是否针对可空引用类型进行了注释?
或者有关于这个的官方状态页面吗?
【问题讨论】:
标签:
c#
.net
windows
.net-assembly
nullable-reference-types
【解决方案1】:
在 VS 16.10 中,您应该能够通过对您在代码中使用的程序集的符号使用 go-to-definition 来查看是否在外部程序集中启用了可空性。如果启用了可空性,您应该会在文件顶部看到 #nullable enable。使用最新的 C# 扩展时,这似乎也适用于 VS Code。
请注意,在 VS 中,这目前需要在选项 -> 文本编辑器 -> C# -> 高级中禁用“导航到反编译源(实验性)”。
就状态页面而言,它可能会帮助您查看 dotnet 运行时存储库中的 this issue,其中概述了某些系统程序集何时可以为空注释。