ReSharper 2024.2 Help

Code inspection: Conditional expression can be rewritten as null-coalescing

If you want to assign a value, pass an argument, or return from a method based on the nullability of an identifier, the clearest syntax you can use in these cases is the ?? (null-coalescing) operator.

Therefore, whenever ReSharper encounters a conditional ?: (ternary) operator in the above-mentioned contexts, it suggests simplifying the expressions using the ?? operator.

Here is an example of a quick-fix suggested by this inspection:

void Foo(string input) { Console.WriteLine($"The input is {(input != null ? input : "empty")}"); }
void Foo(string input) { Console.WriteLine($"The input is {(input ?? "empty")}"); }

Speaking about the performance of both operators, there is no observable difference. Actually, the ?? is even a tiny bit faster.

Last modified: 23 September 2024