The ?? operator is used to return the left operand if it's not null, otherwise, it returns the right operand. It's equivalent to (left != null ? left : right).

string a = null;
object b = a ?? new object();
object c = b ?? "b is null!";
int? x = null;
int y;

// These statements should be equivalent:

y = x ?? default(int);
y = x.GetValueOrDefault();
y = x.HasValue ? x.Value : default(int);
y = x != null ? x.Value : default(int);

For more info, please read: ?? Operator (C# Reference) and default Keyword in Generic Code (C# Programming Guide)