属性
值
规则 ID
IDE0079
标题
删除不必要的抑制
类别
CodeQuality
Subcategory
不必要的代码规则
适用的语言
C# 和 Visual Basic
概述
此规则标记源中不必要的 pragma 和 SuppressMessageAttribute 特性抑制。 源抑制旨在抑制特定部分源代码与编译器和分析器规则的冲突,但不会在代码的其他部分禁用规则。 添加抑制通常是为了抑制误报或用户不打算修复的不重要冲突。 抑制可能会频繁过时,原因包括:修复规则以防止这些误报,或重构用户代码以呈现冗余抑制。 此规则有助于识别此类可删除的冗余抑制。
示例
using System.Diagnostics.CodeAnalysis;
class C1
{
// Necessary pragma suppression
#pragma warning disable IDE0051 // IDE0051: Remove unused member
private int UnusedMethod() => 0;
#pragma warning restore IDE0051
// IDE0079: Unnecessary pragma suppression
#pragma warning disable IDE0051 // IDE0051: Remove unused member
private int UsedMethod() => 0;
#pragma warning restore IDE0051
public int PublicMethod() => UsedMethod();
}
class C2
{
// Necessary SuppressMessage attribute suppression
[SuppressMessage("CodeQuality", "IDE0051:Remove unused private members", Justification = "<Pending>")]
private int _unusedField;
// IDE0079: Unnecessary SuppressMessage attribute suppression
[SuppressMessage("CodeQuality", "IDE0051:Remove unused private members", Justification = "<Pending>")]
private int _usedField;
public int PublicMethod2() => _usedField;
}
dotnet_remove_unnecessary_suppression_exclusions
属性
值
选项名称
dotnet_remove_unnecessary_suppression_exclusions
选项值
, 分隔了必须从分析中排除其抑制的规则 ID 或规则类别(前缀为 category:)的列表all - 禁用规则none -对所有规则 ID 和规则类别启用规则
默认选项值
none
示例
using System.Diagnostics.CodeAnalysis;
class C1
{
// 'dotnet_remove_unnecessary_suppression_exclusions = IDE0051'
// Unnecessary pragma suppression, but not flagged by IDE0079
#pragma warning disable IDE0051 // IDE0051: Remove unused member
private int UsedMethod() => 0;
#pragma warning restore IDE0051
public int PublicMethod() => UsedMethod();
}
另请参阅
pragma
SuppressMessageAttribute
不必要的代码规则
代码样式规则参考
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。