Eliminación de la asignación de valores innecesarios (IDE0059)

Propiedad Value
Identificador de la regla IDE0059
Título Eliminación de la asignación de valores innecesarios
Categoría Estilo
Subcategoría Reglas de código innecesarias (preferencias de nivel de expresión)
Lenguajes aplicables C# y Visual Basic
Opciones csharp_style_unused_value_assignment_preference
visual_basic_style_unused_value_assignment_preference

Información general

Esta regla marca las asignaciones de valores innecesarios. Por ejemplo:

// IDE0059: value written to 'v' is never
// read, so assignment to 'v' is unnecessary.
int v = Compute();
v = Compute2();

Puedes realizar una de las acciones siguientes para corregir esta infracción:

  • Si la expresión del lado derecho de la asignación no tiene efectos secundarios, quite la expresión o toda la instrucción de asignación. Esto mejora el rendimiento ya que se evitan cálculos innecesarios.

    int v = Compute2();
    
  • Si la expresión del lado derecho de la asignación tiene efectos secundarios, reemplaza el lado izquierdo de la asignación por un descarte (solo C#) o una variable local que nunca se use. Descarte mejorar la claridad del código mostrando explícitamente la intención de descartar un valor sin usar.

    _ = Compute();
    int v = Compute2();
    

Opciones

Las opciones para esto especifican si se prefiere el uso de una variable local descartada o una variable local sin usar:

Para obtener información sobre la configuración de las opciones, consulta Formato de opción.

csharp_style_unused_value_assignment_preference

Propiedad. Valor Descripción
Nombre de la opción csharp_style_unused_value_assignment_preference
Lenguajes aplicables C#
Valores de opción discard_variable Se prefiere usar un descarte al asignar un valor que no se usa
unused_local_variable Se prefiere usar una variable local al asignar un valor que no se usa
Valor de opción predeterminado discard_variable
// csharp_style_unused_value_assignment_preference = discard_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
    _ = wordCount.TryGetValue(searchWord, out var count);
    return count;
}

// csharp_style_unused_value_assignment_preference = unused_local_variable
int GetCount(Dictionary<string, int> wordCount, string searchWord)
{
    var unused = wordCount.TryGetValue(searchWord, out var count);
    return count;
}

visual_basic_style_unused_value_assignment_preference

Propiedad. Valor Descripción
Nombre de la opción visual_basic_style_unused_value_assignment_preference
Lenguajes aplicables Visual Basic
Valores de opción unused_local_variable Se prefiere usar una variable local al asignar un valor que no se usa
Valor de opción predeterminado unused_local_variable
' visual_basic_style_unused_value_assignment_preference = unused_local_variable
Dim unused = Computation()

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 IDE0059
// The code that's violating the rule is on this line.
#pragma warning restore IDE0059

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.IDE0059.severity = none

Para deshabilitar todas las reglas de estilo del código, establezca la gravedad de la categoría Style en none del archivo de configuración.

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

Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.

Propiedad Value
Identificador de la regla IDE0059
Título El valor no se usa
Categoría Estilo
Lenguajes aplicables F#
Opciones None

Información general

Esta regla marca las asignaciones de valores innecesarios. Por ejemplo, answer no se usa en el siguiente fragmento de código:

type T() =
    let answer = 42

Consulte también