Use pattern matching (not
operator) (IDE0083)
Property | Value |
---|---|
Rule ID | IDE0083 |
Title | Use pattern matching (not operator) |
Category | Style |
Subcategory | Language rules (pattern matching preferences) |
Applicable languages | C# 9.0+ |
Options | csharp_style_prefer_not_pattern |
Overview
This style rule concerns the use of C# 9.0 not
pattern, when possible.
Options
Options specify the behavior that you want the rule to enforce. For information about configuring options, see Option format.
csharp_style_prefer_not_pattern
Property | Value | Description |
---|---|---|
Option name | csharp_style_prefer_not_pattern | |
Option values | true |
Prefer to use the not pattern, when possible |
false |
Prefer not to use the not pattern. |
|
Default option value | true |
Note
When the option is set to false
, the analyzer does not flag uses of the not
pattern. However, any code that's generated won't use the not
pattern. When the option is set to true
, code that doesn't use the not
pattern is flagged, and any code that's generated uses the not
pattern where applicable.
The following examples show how code would be generated by code-generating features when the option is set to either true
or false
.
// csharp_style_prefer_not_pattern = true
var y = o is not C c;
// csharp_style_prefer_not_pattern = false
var y = !(o is C c);
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 IDE0083
// The code that's violating the rule is on this line.
#pragma warning restore IDE0083
To disable the rule for a file, folder, or project, set its severity to none
in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.IDE0083.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.