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+

Overview

This style rule concerns the use of C# 9.0 'not' pattern, when possible.

csharp_style_prefer_not_pattern

Property Value
Option name csharp_style_prefer_not_pattern
Option values true - Prefer to use 'not' pattern, when possible (introduced with C# 9.0)

false - Do not prefer to use 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.

Example

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);

See also