启用可空类型没有区别
Enabling nullable types makes no difference
我在启用不可为 null 的引用类型时遇到了一些问题。不确定这是一个实际问题,还是我没有跟上最新的命名/设置。
这是我当前的设置(使用 VS Code):
Dotnet version: 3.0.100-preview6-012264
Omnisharp: 1.20.0
我注意到启用 nullable 的标志已更改多次,但正如我在文档和互联网上看到的那样,最新的似乎是 <Nullable/>
我在所有项目中都启用了它(显示的两个主要 Web 项目下面和我的 .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(vs 代码)和使用 Visual Studio 之间似乎不同。因此,指定 <Nullable>
的 MS 文档不适用。对于 omnisharp / vs 代码,需要改用 <NullableContextOptions>enable</NullableContextOptions>
(直到更新 omnisharp)。
我在启用不可为 null 的引用类型时遇到了一些问题。不确定这是一个实际问题,还是我没有跟上最新的命名/设置。
这是我当前的设置(使用 VS Code):
Dotnet version: 3.0.100-preview6-012264 Omnisharp: 1.20.0
我注意到启用 nullable 的标志已更改多次,但正如我在文档和互联网上看到的那样,最新的似乎是 <Nullable/>
我在所有项目中都启用了它(显示的两个主要 Web 项目下面和我的 .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(vs 代码)和使用 Visual Studio 之间似乎不同。因此,指定 <Nullable>
的 MS 文档不适用。对于 omnisharp / vs 代码,需要改用 <NullableContextOptions>enable</NullableContextOptions>
(直到更新 omnisharp)。