我一直在玩新的c# 8.0
NullableReferenceTypes
功能。我对通过更改.csproj
文件来启用此功能感到困惑。
我的意思是,为了启用此功能,您必须在.csproj
文件中添加以下行:
<PropertyGroup>
<LangVersion>8.0</LangVersion>
<NullableContextOptions>enable</NullableContextOptions>
</PropertyGroup>
但我也发现了另一种方式:
<PropertyGroup>
<LangVersion>8.0</LangVersion>
<NullableReferenceTypes>true</NullableReferenceTypes>
</PropertyGroup>
所以它几乎相同,但无论如何。 NullableContextOptions
和NullableReferenceTypes
有什么区别?
在早期的预览中,编译器只允许两个设置(true / false,表示开/关)。
在以后的预览中(从预览2开始),编译器允许更多选项,因此更改了设置的名称和可能的选项。
以下是可能的选项及其含义的文档:https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references
你需要使用Visual Studio 2019预览2或.NET Core 3.0预览2才能使用NullableReferenceTypes
。
您还需要启用C#8.0。检查LangVersion
元素以确保其设置为8.0
。
NullableReferenceTypes
在Visual Studio 2019预览版2中更改为<NullableContextOptions>enable</NullableContextOptions>
PS:此功能在.Net Framework中尚未运行