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 performance of both operators, there is no observable difference. Actually, the ??
is even a tiny bit faster.
Last modified: 08 April 2024