Bird
Raised Fist0
C Sharp (C#)programming~5 mins

Null-coalescing operator in C Sharp (C#)

Choose your learning style10 modes available
Introduction

The null-coalescing operator helps you pick a value that is not null easily. It gives a simple way to choose a default value when something might be missing.

When you want to use a default value if a variable is null.
When reading user input that might be empty or missing.
When working with data that can be optional or not set.
When you want to avoid writing long if-else checks for null.
When you want cleaner and shorter code for fallback values.
Syntax
C Sharp (C#)
var result = value ?? defaultValue;

The operator is written as two question marks: ??.

If value is not null, it is used; otherwise, defaultValue is used.

Examples
If name is null, displayName becomes "Guest".
C Sharp (C#)
string name = null;
string displayName = name ?? "Guest";
If number is null, result is set to 10.
C Sharp (C#)
int? number = null;
int result = number ?? 10;
Since input is not null, output will be "Hello".
C Sharp (C#)
string input = "Hello";
string output = input ?? "Default";
Sample Program

This program shows how the null-coalescing operator picks a default value when the original is null, and uses the original when it is not null.

C Sharp (C#)
using System;

class Program
{
    static void Main()
    {
        string userName = null;
        string displayName = userName ?? "Anonymous";
        Console.WriteLine($"Hello, {displayName}!");

        int? userAge = null;
        int age = userAge ?? 18;
        Console.WriteLine($"Age: {age}");

        userName = "Alice";
        displayName = userName ?? "Anonymous";
        Console.WriteLine($"Hello, {displayName}!");
    }
}
OutputSuccess
Important Notes

The null-coalescing operator only checks for null, not other empty values like empty strings.

You can chain multiple ?? operators to check several values in order.

Summary

The null-coalescing operator ?? helps pick a fallback value when something is null.

It makes code shorter and easier to read when handling optional or missing data.

Use it to avoid long if-else checks for null values.

Practice

(1/5)
1.

What does the null-coalescing operator ?? do in C#?

easy
A. Returns the left value if it is not null; otherwise, returns the right value.
B. Checks if two values are equal.
C. Assigns a value only if the variable is null.
D. Throws an exception if the left value is null.

Solution

  1. Step 1: Understand the operator's purpose

    The null-coalescing operator ?? is used to provide a fallback value when the left-hand side is null.
  2. Step 2: Analyze behavior

    If the left value is not null, it returns that value; otherwise, it returns the right value.
  3. Final Answer:

    Returns the left value if it is not null; otherwise, returns the right value. -> Option A
  4. Quick Check:

    Null-coalescing operator = fallback value [OK]
Hint: Think: "Use right value only if left is null" [OK]
Common Mistakes:
  • Confusing it with equality check
  • Thinking it assigns values automatically
  • Assuming it throws exceptions on null
2.

Which of the following is the correct syntax to use the null-coalescing operator in C#?

string name = null;
string displayName = ??? "Guest";
easy
A. name ??
B. name ?? "Guest"
C. name ? "Guest"
D. name ?: "Guest"

Solution

  1. Step 1: Identify correct operator usage

    The null-coalescing operator syntax is left ?? right, where right is the fallback value.
  2. Step 2: Match syntax to code

    Given string displayName = name ?? "Guest";, it correctly assigns "Guest" if name is null.
  3. Final Answer:

    name ?? "Guest" -> Option B
  4. Quick Check:

    Correct syntax uses ?? between variables [OK]
Hint: Remember: null-coalescing uses two question marks ?? [OK]
Common Mistakes:
  • Using single question mark ? instead of ??
  • Placing ?? after the variable without right value
  • Confusing with ternary operator syntax
3.

What will be the output of the following C# code?

string input = null;
string result = input ?? "Default";
Console.WriteLine(result);
medium
A. null
B. input
C. Default
D. Compilation error

Solution

  1. Step 1: Check the value of input

    The variable input is assigned null.
  2. Step 2: Apply null-coalescing operator

    The expression input ?? "Default" returns "Default" because input is null.
  3. Final Answer:

    Default -> Option C
  4. Quick Check:

    Null input returns fallback string [OK]
Hint: If left is null, output right value [OK]
Common Mistakes:
  • Expecting output to be 'null' string
  • Confusing with ternary operator output
  • Thinking it causes compile error
4.

Identify the error in the following code snippet using the null-coalescing operator:

int? number = null;
int result = number ?? null;
Console.WriteLine(result);
medium
A. Variable 'number' must be non-nullable.
B. The null-coalescing operator is used incorrectly; should be &&.
C. No error; code runs fine and prints 0.
D. Cannot use null as right operand for int result.

Solution

  1. Step 1: Analyze variable types

    number is nullable int (int?), but result is non-nullable int.
  2. Step 2: Check right operand of null-coalescing

    The right operand is null, which cannot be assigned to non-nullable int result.
  3. Final Answer:

    Cannot use null as right operand for int result. -> Option D
  4. Quick Check:

    Right side must be non-null for non-nullable target [OK]
Hint: Right side of ?? must match target type, not null [OK]
Common Mistakes:
  • Using null as fallback for non-nullable variable
  • Confusing ?? with logical operators
  • Ignoring nullable type rules
5.

Given the following code, what will be the output?

string? firstName = null;
string? lastName = "Smith";
string fullName = firstName ?? lastName ?? "Unknown";
Console.WriteLine(fullName);
hard
A. Smith
B. null
C. Unknown
D. Compilation error

Solution

  1. Step 1: Evaluate first null-coalescing operation

    firstName is null, so firstName ?? lastName evaluates to lastName, which is "Smith".
  2. Step 2: Evaluate second null-coalescing operation

    Since lastName is not null, the second ?? "Unknown" is not used.
  3. Final Answer:

    Smith -> Option A
  4. Quick Check:

    Chained ?? returns first non-null value [OK]
Hint: Chain ?? to pick first non-null value [OK]
Common Mistakes:
  • Expecting 'Unknown' when lastName is not null
  • Thinking null propagates through chain
  • Assuming compilation error with nullable strings
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard