DEV Community


Posted on

Null Conditional Check in C# 6

Title: Exploring the Power of C# Null Conditional Check in C# 6

C# 6 introduced a valuable feature called the Null Conditional operator, which enables developers to write safer and more concise code when dealing with potential null values. This powerful feature simplifies null checking and reduces the chances of encountering dreaded NullReferenceExceptions. In this post, we will dive into the concept of Null Conditional Check in C# 6 and explore its benefits with clear code examples.

Understanding Null Conditional Check:
Null Conditional Check, denoted by the question mark operator "?." in C#, allows us to safely access properties, methods, and indexers on a potentially null object without having to explicitly check for null first. If the object is null, the Null Conditional operator returns null rather than throwing an exception.

Code Examples:

  1. Simplified Property Access: Consider a scenario where we have a class called "Person" with a nullable property "Name". Traditionally, we would have to check if the person object is null before accessing its name property. With null conditional check, the code becomes significantly cleaner:
string name = person?.Name;
Enter fullscreen mode Exit fullscreen mode

If the person object is null, the "name" variable will be assigned null, avoiding any potential NullReferenceExceptions.

  1. Chained Method Calls on Nullable Object: Imagine we have a class hierarchy where each class contains a nullable property that needs to be accessed in a method chain. With traditional null checks, we would have to apply multiple if conditions to avoid exceptions. However, using the Null Conditional operator, we can elegantly handle such situations:
int? result = obj?.GetProperty()?.Calculate();
Enter fullscreen mode Exit fullscreen mode

In this example, if any intermediate object (obj or GetProperty()) is null, the entire chain evaluation stops and the result is assigned null.

  1. Conditional Invocation of Methods and Indexers: Null Conditional Check also supports conditional invocation of methods and indexers on nullable objects. This is especially useful when dealing with collections or complex data structures. Let's see an example:
List<int> numbers = null;
int count = numbers?.Count() ?? -1;
Enter fullscreen mode Exit fullscreen mode

In this case, if the "numbers" object is null, the Count() method will not be invoked, and the count variable will hold -1 instead.

The Null Conditional Check introduced in C# 6 provides a concise and safe way to handle potential null values, reducing the likelihood of NullReferenceExceptions. By leveraging this feature, developers can write cleaner and more expressive code, focusing on essential logic rather than tedious null checking. So, next time you find yourself dealing with nullable objects, remember to harness the power of Null Conditional Check and improve the reliability of your code. Happy coding!

Top comments (1)

bigboybamo profile image
Olabamiji Oyetubo

Nice Writeup