在启用非空引用类型时,我遇到了一些问题。不知道这是一个实际的问题,还是不是我跟不上最新的命名/设置。

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

Dotnet version: 3.0.100-preview6-012264
Omnisharp: 1.20.0

I noticed that the flag for enabling nullable has changed multiple times but as I could see in documentation, and on the internet, latest seemed to be <Nullable/> which I enabled in all (both main web project shown below and in my .NET Standard 2.0 class libs):

<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>

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

我在这里缺少什么来使它在项目级别上起作用?

最佳答案

总结以上讨论:

当前的名称在omnisharp(与代码)之间有所不同,并且在使用Visual Studio时似乎有所不同。因此,指定<Nullable>的MS文档不适用。对于omnisharp/vs代码,需要改为使用<NullableContextOptions>enable</NullableContextOptions>(直到omnisharp已更新)。

关于c# - 启用可空类型没有区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56811030/

10-16 21:01