Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Use pattern matching (
| 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.