When using the ??
operator in C#, does it short circuit if the value being tested is not null?
Example:
string test = null; string test2 = test ?? "Default"; string test3 = test2 ?? test.ToLower();
Does the test3 line succeed or throw a null reference exception?
So another way to phrase the question: Will the right hand expression of the ?? operator get evaluated if the left hand is not null?
The for statement lets you repeat a statement or compound statement a specified number of times. The body of a for statement is executed zero or more times until an optional condition becomes false.
The C do while statement creates a structured loop that executes as long as a specified condition is true at the end of each pass through the loop.
The ' |= ' symbol is the bitwise OR assignment operator.
Yes, it says so in the C# Language Specification (highlighting by me):
A null coalescing expression of the form
a ?? b
requiresa
to be of a nullable type or reference type. Ifa
is non-null, the result ofa ?? b
isa
; otherwise, the result isb
. The operation evaluatesb
only ifa
is null.
Yes, it short circuits.
class Program { public static void Main() { string s = null; string s2 = "Hi"; Console.WriteLine(s2 ?? s.ToString()); } }
The above program outputs "Hi" rather than throwing a NullReferenceException
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With