В чем разница между NullableContextOptions и NullableReferenceTypes? - PullRequest
0 голосов
/ 24 февраля 2019

Я давно играю с новой функцией 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?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

В более ранних предварительных просмотрах компилятор допускал только две настройки (true / false, что означает включение / выключение).

В более поздних предварительных просмотрах (начиная с предварительного просмотра 2) компилятор допускал больше параметров, поэтому имянастройки и возможные параметры были изменены.

Вот документация о возможных параметрах и их значениях: https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references

0 голосов
/ 24 февраля 2019

Для использования NullableReferenceTypes необходимо иметь предварительный просмотр Visual Studio 2019 2 или предварительный просмотр 2 .NET Core 3.0.

Вам также нужно включить C # 8.0.Проверьте элемент LangVersion, чтобы убедиться, что его значение 8.0.

NullableReferenceTypes изменено на <NullableContextOptions>enable</NullableContextOptions> в предварительном просмотре Visual Studio 2019 2

PS: эта функция еще не установленаработа в .Net Framework

...