Use expression body for operators (IDE0023 and IDE0024)
This article describes two related rules, IDE0023
and IDE0024
, which apply to conversion operators and operators, respectively.
Property | Value |
---|---|
Rule ID | IDE0023 |
Title | Use expression body for conversion operators |
Category | Style |
Subcategory | Language rules (expression-bodied members) |
Applicable languages | C# |
Options | csharp_style_expression_bodied_operators |
Property | Value |
---|---|
Rule ID | IDE0024 |
Title | Use expression body for operators |
Category | Style |
Subcategory | Language rules (expression-bodied members) |
Applicable languages | C# |
Options | csharp_style_expression_bodied_operators |
Overview
This style rule concerns the use of expression bodies versus block bodies for operators.
Options
Set the value of the associated option for these rules to specify whether expression bodies or block bodies for operators are preferred, and if expression bodies are preferred, whether they're preferred only for single-line expressions.
For more information about configuring options, see Option format.
csharp_style_expression_bodied_operators
Property | Value | Description |
---|---|---|
Option name | csharp_style_expression_bodied_operators | |
Option values | true |
Prefer expression bodies for operators |
when_on_single_line |
Prefer expression bodies for operators when they will be a single line | |
false |
Prefer block bodies for operators | |
Default option value | false |
// csharp_style_expression_bodied_operators = true
public static ComplexNumber operator + (ComplexNumber c1, ComplexNumber c2)
=> new ComplexNumber(c1.Real + c2.Real, c1.Imaginary + c2.Imaginary);
// csharp_style_expression_bodied_operators = false
public static ComplexNumber operator + (ComplexNumber c1, ComplexNumber c2)
{ return new ComplexNumber(c1.Real + c2.Real, c1.Imaginary + c2.Imaginary); }
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 IDE0023 // Or IDE0024
// The code that's violating the rule is on this line.
#pragma warning restore IDE0023 // Or IDE0024
To disable the rule for a file, folder, or project, set its severity to none
in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.IDE0023.severity = none
dotnet_diagnostic.IDE0024.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.