Включение обнуляемых типов не имеет значения - PullRequest
3 голосов
/ 28 июня 2019

У меня были некоторые проблемы с включением необнуляемых ссылочных типов. Не уверен, что это актуальная проблема или это я не поспеваю за последними именами / настройками этого.

Это мои текущие настройки (с использованием кода VS):

Dotnet version: 3.0.100-preview6-012264
Omnisharp: 1.20.0

Я заметил, что флаг включения nullable менялся несколько раз, но, как я мог видеть в документации и в Интернете, последний показался <Nullable/>, который я включил во всех (как основной веб-проект, показанный ниже, так и в моем .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 переключается прямо на то, что кажется правильным предупреждением. Добавление этого в файл также приведет к сбою сборки (это поведение, которое я ищу).

Что мне здесь не хватает, чтобы заставить это работать на уровне проекта?

1 Ответ

1 голос
/ 30 июня 2019

Подводя итог обсуждению выше:

Наименование этого в настоящее время отличается от omnisharp (против кода), и при использовании Visual Studio это кажется.Так что документация MS, в которой указано <Nullable>, не применима.Для кода omnisharp / vs необходимо использовать <NullableContextOptions>enable</NullableContextOptions> (пока не обновлен omnisharp).

...