在启用非空引用类型时,我遇到了一些问题。不知道这是一个实际的问题,还是不是我跟不上最新的命名/设置。
这是我当前的设置(使用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/