// define a nullable int
int? x = null;
// assign a value to another integer, but check if it contains null value
// if a null is there, assign a default value
int y = x ?? -1;
Ex. 2 : Passing as parameter
public class MyClass
{
// define members here
}
public class TestClass
{
public void VerifyObject(MyClass myClassObject)
{
if (myClassObject == null)
{
// display error message
}
else
{
// do something
}
}
public void Test()
{
MyClass myClassObject1 = null;
MyClass myClassObject2 = new MyClass();
VerifyObject(myClassObject1 ?? myClassObject2);
}
}
Ex. 3 : Create new Object
MyClass myClassObject1 = null;
/*
instead of writing -
if (myClassObject1 != null)
{
myClassObject2 = myClassObject1;
}
else
{
myClassObject2 = new MyClass();
}
Write in a single statement
*/
MyClass myClassObject2 = myClassObject1 ?? new MyClass();
Ex. 4 : Return value from function
/* instead of writing -
if (myClassObject1 != null)
return myClassObject1;
if (myClassObject2 != null)
return myClassObject2;
return null;
Write in a single statement
*/
return myClassObject1 ?? myClassObject2
As the above examples show using null-coalescing operator can help us reduce the lines of code significantly.