启用可为空类型没有区别

Bas*_*ase 6 c# visual-studio-code c#-8.0 nullable-reference-types

我在启用不可为空的引用类型时遇到了一些问题。不确定这是一个实际问题,还是我没有跟上最新的命名/设置。

这是我当前的设置(使用 VS Code):

dotnet 版本:3.0.100-preview6-012264
无所不能:1.20.0

我注意到启用 nullable 的标志已更改多次,但正如我在文档和互联网上看到的那样,最新的似乎是<Nullable/>我全部启用的(下面显示的主 Web 项目和我的 .NET Standard 2.0 类库中) ):

<Project Sdk="Microsoft.NET.Sdk.Web">

  ...

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <Nullable>enable</Nullable>
    <WarningsAsErrors>CS8600;CS8602;CS8603</WarningsAsErrors>
  </PropertyGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

如果我#nullable enable在我正在测试的文件中使用,我会看到 IntelliSense 直接切换到正确的警报。在文件中添加它也会使构建失败(这是我正在寻找的行为)。

我在这里缺少什么才能在项目级别上工作?

Bas*_*ase 5

总结上面的讨论:

这个命名目前在 omnisharp (vs code) 和使用 Visual Studio 时有所不同。因此,指定的 MS 文档<Nullable>不适用。对于 omnisharp /<NullableContextOptions>enable</NullableContextOptions>需要使用vs 代码代替(直到 omnisharp 已更新)。