Включение предупреждений об нулевом ссылочном типе

У меня есть файл проекта MSTest, который включает следующий раздел:

<PropertyGroup>
  <TargetFramework>net5.0</TargetFramework>
  <Nullable>enable</Nullable>
  <Nullable>annotations</Nullable>
  <LangVersion>9.0</LangVersion>
  <IsPackable>false</IsPackable>
</PropertyGroup>

Но я не получаю предупреждений об нулевом ссылочном типе.

Однако, если я добавлю в свой код следующее:

#nullable enable

#nullable restore

Затем код между этими двумя строками действительно показывает предупреждения, допускающие значение NULL.

Как я могу включить эти предупреждения для всего моего проекта?


person Jonathan Wood    schedule 13.03.2021    source источник


Ответы (1)


Ваш файл проекта сначала устанавливает свойство для включения, а затем изменяет его на аннотации - избавьтесь от строки <Nullable>annotations</Nullable> в файле проекта, и оно будет включено.

подозреваю, что в любом случае он включен по умолчанию для проектов .NET 5.0, но явно включить его не повредит.)

person Jon Skeet    schedule 13.03.2021
comment
Как повезло, что Джон Скит появился в субботу утром и помог мне (снова). Да, я видел пример, в котором использовались и то, и другое, и именно это я и делал. Но в других случаях я вижу, что поставил annotations первым, так что это не имело значения. Ясно, что у меня нет твердого понимания этих двух настроек. Спасибо! - person Jonathan Wood; 13.03.2021
comment
При дальнейшей проверке выясняется, что требуется настройка enabled. По крайней мере, с моей конфигурацией. - person Jonathan Wood; 13.03.2021