?? Operator (C# Reference)
The ?? operator returns the left-hand operand if it is not null, or else it returns the right operand.
A nullable type can contain a value, or it can be undefined. The ?? operator defines the default value to be returned when a nullable type is assigned to a non-nullable type. If you try to assign a nullable type to a non-nullable type without using the ?? operator, you will generate a compile-time error. If you use a cast, and the nullable type is currently undefined, an InvalidOperationException exception will be thrown.
For more information, see Nullable Types (C# Programming Guide).
// nullable_type_operator.cs
using System;
class MainClass
{
static int? GetNullableInt()
{
return null;
}
static string GetStringValue()
{
return null;
}
static void Main()
{
// ?? operator example.
int? x = null;
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
// Assign i to return value of method, unless
// return value is null, in which case assign
// default value of int to i.
int i = GetNullableInt() ?? default(int);
string s = GetStringValue();
// ?? also works with reference types.
// Display contents of s, unless s is null,
// in which case display "Unspecified".
Console.WriteLine(s ?? "Unspecified");
}
}
Reference
C# OperatorsConcepts
C# Programming GuideNullable Types (C# Programming Guide)
Other Resources
C# Referenceint? x;
is similar to VB.Net's
Dim x as Nullable(Of Integer)
- 4/10/2012
- Russ Hacker
see you can use below snippet only if you have used int? x = null else even u cant declare a variable like int x = null
int? x = null;
int y;
y = x??-1;
- 3/22/2009
- shahjapan
int? x = null;
The question mark declares x as a nullable int, which is why you can initialise it to null.
(see also http://msdn.microsoft.com/en-us/library/1t3y8s4s(VS.80).aspx)
- 10/9/2008
- Commodore73
- 10/20/2008
- inmykingdom