NullableContextOptions和NullableReferenceTypes有什么区别?

问题描述 投票:3回答:2

我一直在玩新的c# 8.0 NullableReferenceTypes功能。我对通过更改.csproj文件来启用此功能感到困惑。

我的意思是,为了启用此功能,您必须在.csproj文件中添加以下行:

<PropertyGroup>
  <LangVersion>8.0</LangVersion>
  <NullableContextOptions>enable</NullableContextOptions>
</PropertyGroup>

但我也发现了另一种方式:

<PropertyGroup>
  <LangVersion>8.0</LangVersion>
  <NullableReferenceTypes>true</NullableReferenceTypes>
</PropertyGroup>

所以它几乎相同,但无论如何。 NullableContextOptionsNullableReferenceTypes有什么区别?

c# .net .net-core c#-8.0 nullablereferencetypes
2个回答
6
投票

在早期的预览中,编译器只允许两个设置(true / false,表示开/关)。

在以后的预览中(从预览2开始),编译器允许更多选项,因此更改了设置的名称和可能的选项。

以下是可能的选项及其含义的文档:https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references


0
投票

你需要使用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中尚未运行

© www.soinside.com 2019 - 2024. All rights reserved.