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:
- C# - csharp_style_unused_value_assignment_preference
- Visual Basic - visual_basic_style_unused_value_assignment_preference
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