I was wondering about ??
signs in C#
code. What is it for? And how can I use it?
What about int?
? Is it a nullable int?
?? Null Coalescing Operator —> What does coalescing mean?
It's the null coalescing operator. It was introduced in C# 2.
The result of the expression a ?? b
is a
if that's not null, or b
otherwise. b
isn't evaluated unless it's needed.
Two nice things:
The overall type of the expression is that of the second operand, which is important when you're using nullable value types:
int? maybe = ...;
int definitely = maybe ?? 10;
(Note that you can't use a non-nullable value type as the first operand - it would be pointless.)
The associativity rules mean you can chain this really easily. For example:
string address = shippingAddress ?? billingAddress ?? contactAddress;
That will use the first non-null value out of the shipping, billing or contact address.
It's called the "null coalescing operator" and works something like this:
Instead of doing:
int? number = null;
int result = number == null ? 0 : number;
You can now just do:
int result = number ?? 0;
That is the coalesce operator. It essentially is shorthand for the following
x ?? new Student();
x != null ? x : new Student();
MSDN Documentation on the operator
It's the new Null Coalesce operator.
The ?? operator returns the left-hand operand if it is not null, or else it returns the right operand.
You can read about it here: http://msdn.microsoft.com/en-us/library/ms173224(VS.80).aspx
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