删除不必要的抑制(IDE0370)

资产 价值
规则 ID IDE0370
标题 删除不必要的抑制
类别 Style
子类别 不必要的代码规则(抑制首选项)
适用的语言 C#
Options None

概述

此规则使用 空引用宽容运算符 (!) 标识不必要的可为 null 警告抑制。 null forgiving 运算符告知编译器该值不为 null,这将禁止显示可为 null 引用类型的警告。 但是,当编译器已经确定值不为 null 时,不必要且可以删除 null 放弃运算符。

Example

// Code with violations.
#nullable enable

void ProcessValue()
{
    List<string> names = new()!;
}

// Fixed code.
#nullable enable

void ProcessValue()
{
    List<string> names = new(); // No suppression needed.
}

禁止显示警告

如果只想取消单个冲突,请将预处理器指令添加到源文件以禁用,然后重新启用规则。

#pragma warning disable IDE0370
// The code that's violating the rule is on this line.
#pragma warning restore IDE0370

若要禁用文件、文件夹或项目的规则,请在none中将其严重性设置为

[*.{cs,vb}]
dotnet_diagnostic.IDE0370.severity = none

若要禁用所有代码样式规则,请将类别 Style 的严重性设置为 none中的

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

有关详细信息,请参阅 如何禁止显示代码分析警告

另请参阅