web-dev-qa-db-ja.com

すべてのC#8 null許容参照警告をエラーとして処理する方法は?

Visual Studio 2019 v16.3.2を、.NET Core 3.0プロジェクトをC#8に設定し、null許容の参照型を有効にして使用します。

<PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <Nullable>enable</Nullable>
</PropertyGroup>

すべての警告をエラーとして扱うように設定した場合:

warnings as errors radio button selected

<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />

他の警告をエラーとして報告します。例えば、 CS0168 The variable 'x' is declared but never usedはエラーとして報告されます。ただし、null許容の参照警告はすべて警告として報告されます。例えば、 CS8600 Converting null literal or possible null value to non-nullable type.は引き続き警告として報告されます。

どのように扱うかすべてのnull可能参照警告をエラーとして扱いますか?

注:特にCS8600をエラーとして扱うように設定しても、エラーとして報告されることはありません。それがうまくいったとしても、非常に多くあるので、それらをすべてエラーとして扱うことには役立たないでしょう。

編集:エラーとして扱われる特定の警告を設定する<WarningsAsErrors>CS8600;CS8602;CS8603</WarningsAsErrors> csproj内にあり、機能しません。

this ソリューションを使用することをお勧めします。 3つのエラーすべてとIMHOのより良い解決策について言及している

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <WarningsAsErrors>CS8600;CS8602;CS8603</WarningsAsErrors>
  </PropertyGroup>
</Project>

screen

0
Sergey G.