IDE0058: Remove unnecessary expression value - .NET (original) (raw)
Property | Value |
---|---|
Rule ID | IDE0058 |
Title | Remove unnecessary expression value |
Category | Style |
Subcategory | Language rules (expression-level preferences) |
Applicable languages | C# and Visual Basic |
Options | csharp_style_unused_value_expression_statement_preference |
visual_basic_style_unused_value_expression_statement_preference |
Overview
This rule flags unused expression values. For example:
void M()
{
Compute(); // IDE0058: computed value is never used.
}
int Compute();
You can take one of the following actions to fix this violation:
- If the expression has no side effects, remove the entire statement. This improves performance by avoiding unnecessary computation.
- If the expression has side effects, replace the left side of the assignment with a discard (C# only) or a local variable that's never used. This improves code clarity by explicitly showing the intent to discard an unused value.
_ = Compute();
Options
The options for this specify whether to prefer the use of a discard or an unused local variable:
- C# - csharp_style_unused_value_expression_statement_preference
- Visual Basic - visual_basic_style_unused_value_expression_statement_preference
For information about configuring options, see Option format.
csharp_style_unused_value_expression_statement_preference
Property | Value | Description |
---|---|---|
Option name | csharp_style_unused_value_expression_statement_preference | |
Applicable languages | C# | |
Option values | discard_variable | Prefer to assign an unused expression to a discard |
unused_local_variable | Prefer to assign an unused expression to a local variable that's never used | |
Default option value | discard_variable |
// Original code:
System.Convert.ToInt32("35");
// After code fix for IDE0058:
// csharp_style_unused_value_expression_statement_preference = discard_variable
_ = System.Convert.ToInt32("35");
// csharp_style_unused_value_expression_statement_preference = unused_local_variable
var unused = Convert.ToInt32("35");
visual_basic_style_unused_value_expression_statement_preference
Property | Value | Description |
---|---|---|
Option name | visual_basic_style_unused_value_expression_statement_preference | |
Applicable languages | Visual Basic | |
Option values | unused_local_variable | Prefer to assign an unused expression to a local variable that's never used |
Default option value | unused_local_variable |
' visual_basic_style_unused_value_expression_statement_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 IDE0058
// The code that's violating the rule is on this line.
#pragma warning restore IDE0058
To disable the rule for a file, folder, or project, set its severity to none
in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.IDE0058.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.