Using NULL-COALESCE Operator in C#

To my knowledge perhaps the least used operator in C# is the null-coalescing operator .
But you can use it effectively to reduce the lines of code you write .

The null-coalesce operator can be used to define / return a default value for a nullable value type / reference type and this is represented by two consecutive question marks (??).

Here is how you can use it :

Ex. 1 : Assign default value to Value type
 
 // 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.

150 150 Burnignorance | Where Minds Meet And Sparks Fly!