Conditional (?:) and Null-Coalescing (??) Operators in C# Programming


Introduction

The conditional operator (?:) and the null-coalescing operator (??) are used in C# to simplify decision-making and handle null values efficiently. This tutorial explains their usage with step-by-step examples.

Conditional Operator (?:)

The conditional operator evaluates a boolean expression and returns one of two values based on whether the condition is true or false. It is also known as the ternary operator.

Syntax:

    condition ? value_if_true : value_if_false;
        

Example: Basic Conditional Operator

    using System;
   class Program
    {
        static void Main()
        {
            int number = 10;
            string result = (number % 2 == 0) ? "Even" : "Odd";
           Console.WriteLine("The number is: " + result);
        }
    }
        

Output:

    The number is: Even
        

Example: Nested Conditional Operator

    using System;
   class Program
    {
        static void Main()
        {
            int score = 85;
            string grade = (score >= 90) ? "A" :
                           (score >= 80) ? "B" :
                           (score >= 70) ? "C" : "F";
           Console.WriteLine("The grade is: " + grade);
        }
    }
        

Output:

    The grade is: B
        

Null-Coalescing Operator (??)

The null-coalescing operator is used to provide a default value when a nullable variable or reference type is null.

Syntax:

    variable ?? default_value;
        

Example: Basic Null-Coalescing Operator

    using System;
   class Program
    {
        static void Main()
        {
            string? name = null;
            string result = name ?? "Unknown";
           Console.WriteLine("The name is: " + result);
        }
    }
        

Output:

    The name is: Unknown
        

Example: Null-Coalescing with User Input

    using System;
   class Program
    {
        static void Main()
        {
            Console.WriteLine("Enter your name (or press Enter to skip):");
            string? input = Console.ReadLine();
            string name = string.IsNullOrWhiteSpace(input) ? "Guest" : input;
           Console.WriteLine("Hello, " + name + "!");
        }
    }
        

Output (example):

    Enter your name (or press Enter to skip):
    John
    Hello, John!
        

Combining Conditional and Null-Coalescing Operators

You can use both operators together to handle conditions and null values in a concise way.

Example: Combined Usage

    using System;
   class Program
    {
        static void Main()
        {
            int? number = null;
            string result = (number ?? 0) > 50 ? "High" : "Low";
           Console.WriteLine("The value is: " + result);
        }
    }
        

Output:

    The value is: Low
        

Conclusion

The conditional operator (?:) and the null-coalescing operator (??) are essential tools for writing concise and readable C# code. Understanding their usage helps simplify complex decision-making logic and handle null values effectively.




Advertisement