Remove unnecessary value assignment (IDE0059)
Property | Value |
---|---|
Rule ID | IDE0059 |
Title | Remove unnecessary value assignment |
Category | Style |
Subcategory | Unnecessary code rules (expression-level preferences) |
Applicable languages | C# and Visual Basic |
Options | csharp_style_unused_value_assignment_preference |
visual_basic_style_unused_value_assignment_preference |
Overview
This rule flags unnecessary value assignments. For example:
// IDE0059: value written to 'v' is never
// read, so assignment to 'v' is unnecessary.
int v = Compute();
v = Compute2();
You can take one of the following actions to fix this violation:
If the expression on the right side of the assignment has no side effects, remove the expression or the entire assignment statement. This improves performance by avoiding unnecessary computation.
int v = Compute2();
If the expression on the right side of the assignment has side effects, replace the left side of the assignment with a discard (C# only) or a local variable that's never used. Discards improve code clarity by explicitly showing the intent to discard an unused value.
_ = Compute(); int v = Compute2();
Options
The options for this specify whether to prefer the use of a discard or an unused local variable:
- C# - csharp_style_unused_value_assignment_preference
- Visual Basic - visual_basic_style_unused_value_assignment_preference
For information about configuring options, see Option format.
csharp_style_unused_value_assignment_preference
Property | Value | Description |
---|---|---|
Option name | csharp_style_unused_value_assignment_preference | |
Applicable languages | C# | |
Option values | discard_variable |
Prefer to use a discard when assigning a value that's not used |
unused_local_variable |
Prefer to use a local variable when assigning a value that's not used | |
Default option value | 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
Property | Value | Description |
---|---|---|
Option name | visual_basic_style_unused_value_assignment_preference | |
Applicable languages | Visual Basic | |
Option values | unused_local_variable |
Prefer to use a local variable when assigning a value that's not used |
Default option value | unused_local_variable |
' visual_basic_style_unused_value_assignment_preference = unused_local_variable
Dim unused = Computation()
Suppress a warning
If you want to suppress only a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.
#pragma warning disable IDE0059
// The code that's violating the rule is on this line.
#pragma warning restore IDE0059
To disable the rule for a file, folder, or project, set its severity to none
in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.IDE0059.severity = none
To disable all of the code-style rules, set the severity for the category Style
to none
in the configuration file.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
For more information, see How to suppress code analysis warnings.
Property | Value |
---|---|
Rule ID | IDE0059 |
Title | The value is unused |
Category | Style |
Applicable languages | F# |
Options | None |
Overview
This rule flags unnecessary value assignments. For example, answer
is unused in the following snippet:
type T() =
let answer = 42
See also
Feedback
https://aka.ms/ContentUserFeedback.
În curând: Pe parcursul anului 2024, vom elimina treptat Probleme legate de GitHub ca mecanism de feedback pentru conținut și îl vom înlocui cu un nou sistem de feedback. Pentru mai multe informații, consultați:Trimiteți și vizualizați feedback pentru