Operator precedence surprises in pattern matching and null-coalescing

6/10 Medium

The `??` (null-coalescing) operator and pattern matching operators have unintuitive precedence rules. For example, `x is not 0 or 1` evaluates as `(x is not 0) or 1` rather than the intended `x is not (0 or 1)`, leading to subtle bugs and redundant logic.

Category
dx
Workaround
partial
Stage
debug
Freshness
persistent
Scope
language
Upstream
open
Recurring
Yes
Buyer Type
individual
Maintainer
active

Sources

Collection History

Query: “What are the most common pain points with C# for developers in 2025?4/5/2026

The `??` operator has lower precedence than the `+` operator... `x is not 0 or 1` actually means `x is (not 0) or 1`. Such mistakes can lead not only to redundancy but also to errors like `NullReferenceException`.

Created: 4/5/2026Updated: 4/5/2026