c# - .NET - 哪些系统程序集被注释为可空引用类型?

标签 c# .net windows .net-assembly nullable-reference-types

我正在尝试查找有关 C# 8 的可空引用类型功能的 .NET 系统程序集的状态。

无注释的代码或使用早期语言版本编写的代码将被视为“null-oblivious”,这意味着编译器不会生成任何有关可空性的警告。

当涉及到从可空启用上下文中使用系统程序集时,这确实很烦人,因为无法判断是否需要空检查。

是否有任何方法可以检查程序集是否注释为可为空的引用类型?

或者有一些关于此的官方状态页面吗?

最佳答案

在 VS 16.10 中,您应该能够通过在代码中使用的程序集中的符号上使用 go-to-definition 来查看外部程序集中是否启用了可空性。如果启用了可为空性,您应该会在文件顶部看到 #nullable enable。当使用最新的 C# 扩展时,这似乎也适用于 VS Code。

metadata view of nullable-enabled System.Console

请注意,在 VS 中,当前需要在选项 -> 文本编辑器 -> C# -> 高级中禁用“导航到反编译源(实验)”。

就状态页面而言,它可能会帮助您查看 this issue在 dotnet 运行时存储库中,其中概述了某些系统程序集何时被可空注释。

关于c# - .NET - 哪些系统程序集被注释为可空引用类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68292715/

相关文章:

c# - 我想将图像从数据库调用到结果中的 ASP :repeater control but I am getting <image src"System. Byte[]">

c# - HttpPostedFileBase 与 HttpPostedFileWrapper 的关系

c# - 使用win api模拟鼠标点击魔兽争霸3按钮

.net - Thread.Sleep()与Monitor.Wait/Monitor.Pulse

asp.net - 图像作为 Asp.Net 5 类库中的资源

c# - 当应用程序进程被终止/崩溃时终止子进程

python - 在另一个目录中打开文件(Python)

c# - WebAPI 错误读取 MIME 多部分正文部分

c# - 有什么理由不使用 'protected' 属性吗?

c++ - 如何在 Windows 中使用文件带宽预留(计划文件 IO)