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.
Null-coalescing operator in 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.
name is null, displayName becomes "Guest".string name = null; string displayName = name ?? "Guest";
number is null, result is set to 10.int? number = null; int result = number ?? 10;
input is not null, output will be "Hello".string input = "Hello"; string output = input ?? "Default";
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.
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}!"); } }
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.
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
What does the null-coalescing operator ?? do in C#?
Solution
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.Step 2: Analyze behavior
If the left value is not null, it returns that value; otherwise, it returns the right value.Final Answer:
Returns the left value if it is not null; otherwise, returns the right value. -> Option AQuick Check:
Null-coalescing operator = fallback value [OK]
- Confusing it with equality check
- Thinking it assigns values automatically
- Assuming it throws exceptions on null
Which of the following is the correct syntax to use the null-coalescing operator in C#?
string name = null; string displayName = ??? "Guest";
Solution
Step 1: Identify correct operator usage
The null-coalescing operator syntax isleft ?? right, where right is the fallback value.Step 2: Match syntax to code
Givenstring displayName = name ?? "Guest";, it correctly assigns "Guest" if name is null.Final Answer:
name ?? "Guest" -> Option BQuick Check:
Correct syntax uses ?? between variables [OK]
- Using single question mark ? instead of ??
- Placing ?? after the variable without right value
- Confusing with ternary operator syntax
What will be the output of the following C# code?
string input = null; string result = input ?? "Default"; Console.WriteLine(result);
Solution
Step 1: Check the value of
The variableinputinputis assignednull.Step 2: Apply null-coalescing operator
The expressioninput ?? "Default"returns "Default" becauseinputis null.Final Answer:
Default -> Option CQuick Check:
Null input returns fallback string [OK]
- Expecting output to be 'null' string
- Confusing with ternary operator output
- Thinking it causes compile error
Identify the error in the following code snippet using the null-coalescing operator:
int? number = null; int result = number ?? null; Console.WriteLine(result);
Solution
Step 1: Analyze variable types
numberis nullable int (int?), butresultis non-nullable int.Step 2: Check right operand of null-coalescing
The right operand isnull, which cannot be assigned to non-nullable intresult.Final Answer:
Cannot use null as right operand for int result. -> Option DQuick Check:
Right side must be non-null for non-nullable target [OK]
- Using null as fallback for non-nullable variable
- Confusing ?? with logical operators
- Ignoring nullable type rules
Given the following code, what will be the output?
string? firstName = null; string? lastName = "Smith"; string fullName = firstName ?? lastName ?? "Unknown"; Console.WriteLine(fullName);
Solution
Step 1: Evaluate first null-coalescing operation
firstNameis null, sofirstName ?? lastNameevaluates tolastName, which is "Smith".Step 2: Evaluate second null-coalescing operation
SincelastNameis not null, the second?? "Unknown"is not used.Final Answer:
Smith -> Option AQuick Check:
Chained ?? returns first non-null value [OK]
- Expecting 'Unknown' when lastName is not null
- Thinking null propagates through chain
- Assuming compilation error with nullable strings
Ready to prove it?
Pass the test and this pattern moves unknown
