Eliminación de una supresión innecesaria (IDE0079)
Propiedad | Value |
---|---|
Identificador de la regla | IDE0079 |
Título | Eliminación de una supresión innecesaria |
Categoría | CodeQuality |
Subcategoría | Reglas de código innecesarias (preferencias de supresión) |
Lenguajes aplicables | C# y Visual Basic |
Opciones | dotnet_remove_unnecessary_suppression_exclusions |
Información general
Esta regla marca las supresiones pragma y SuppressMessageAttribute de atributo innecesarias en el origen.
Las supresiones de origen suprimen las infracciones de las reglas del compilador y del analizador en lugares específicos, pero no en otras partes del código fuente. Por lo general, se usan para suprimir falsos positivos o infracciones menos importantes que no se pretende corregir. Sin embargo, las supresiones a menudo pasan a estar obsoletas. Esto puede ocurrir si se ha corregido una regla para evitar falsos positivos o se refactoriza el código y, al hacerlo, las supresiones pasar a ser redundantes. Esta regla ayuda a identificar las supresiones redundantes, que se pueden eliminar.
Nota:
Incluso si habilita reglas de estilo de código en la compilación, esta regla no está habilitada. Solo se muestra en el editor de Visual Studio.
Ejemplo
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;
}
Opciones
Las opciones especifican el comportamiento que se quiere que aplique la regla. Para más información sobre cómo configurar opciones, consulte Formato de opción.
dotnet_remove_unnecessary_suppression_exclusions
Propiedad | Valor | Descripción |
---|---|---|
Nombre de la opción | dotnet_remove_unnecessary_suppression_exclusions | |
Valores de opción | Lista separada por , de identificadores de reglas o categorías (con el prefijo category: ) |
Excluye las supresiones de las reglas enumeradas. |
all |
Deshabilita la regla (todos los identificadores de reglas excluidos) | |
none |
Habilita la regla para todas las reglas (sin exclusiones) | |
Valor de opción predeterminado | 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();
}
Supresión de una advertencia
Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.
#pragma warning disable IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079
Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none
del archivo de configuración.
[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none
Para deshabilitar toda esta categoría de reglas, establezca la gravedad de la categoría en none
del archivo de configuración.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none
Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.