启用非空引用类型时遇到一些问题。不知道这是一个实际的问题,还是不是我跟不上最新的命名/设置。
这是我当前的设置(使用VS Code):
Dotnet version: 3.0.100-preview6-012264 Omnisharp: 1.20.0
我注意到启用空值的标志已多次更改,但是正如我在文档中和互联网上所看到的那样,最新的似乎是<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>
如果我在测试的文件中使用#nullable enable
,我会发现IntelliSense会直接切换到正确的警报。将其添加到文件中也会使构建失败(这是我要寻找的行为)。
要在项目级别进行此工作,我在这里想念什么?
答案 0 :(得分:1)
总结上面的讨论:
当前的命名在omnisharp(与代码)之间有所不同,并且在使用Visual Studio时似乎有所不同。因此,指定<Nullable>
的MS文档不适用。对于omnisharp / vs代码,需要改用<NullableContextOptions>enable</NullableContextOptions>
(直到omnisharp已更新)。