What is null-conditional operator (?.)?
๐ก Concept: Null-Conditional Operator (?.) in C#
The null-conditional operator (?.) allows safe navigation through potentially null objects, preventing NullReferenceException.
๐ Quick Intro
It simplifies null checks by returning null if the left operand is null instead of throwing exceptions.
๐ง Analogy
Like checking if a friend is home before calling them to avoid a failed call.
๐ง Technical Explanation
- Introduced in C# 6.0.
- Allows chaining: obj?.Property?.Method()
- If any operand is null, the entire expression evaluates to null.
- Reduces boilerplate null checks.
- Improves code readability and safety.
๐ฏ Use Cases
- โ Access nested properties safely.
- โ Call methods on potentially null objects.
- โ Simplify event invocation.
- โ Avoid verbose null checks.
๐ป Code Example
Person person = null;
// Without null-conditional operator:
if (person != null) {
Console.WriteLine(person.Name);
}
// With null-conditional operator:
Console.WriteLine(person?.Name);

โ Interview Q&A
Q1: What does the null-conditional operator do?
A: Prevents NullReferenceException by safe navigation.
Q2: Since which C# version is it available?
A: C# 6.0.
Q3: Can it be chained?
A: Yes.
Q4: What happens if left operand is null?
A: Expression returns null.
Q5: Is it thread-safe?
A: Depends on usage.
Q6: Can it be used with events?
A: Yes.
Q7: Does it replace all null checks?
A: Not always.
Q8: Is it syntactic sugar?
A: Yes.
Q9: Can it be used with indexers?
A: Yes.
Q10: Does it impact performance?
A: Minimal overhead.
๐ MCQs
Q1. What does the null-conditional operator do?
- Throws exception
- Prevents NullReferenceException
- Returns default
- No effect
Q2. Since which C# version is it available?
- C# 5.0
- C# 6.0
- C# 7.0
- C# 8.0
Q3. Can it be chained?
- No
- Yes
- Sometimes
- Never
Q4. What happens if left operand is null?
- Throws exception
- Expression returns null
- Returns zero
- Returns empty
Q5. Is it thread-safe?
- Yes
- No
- Depends on usage
- Rarely
Q6. Can it be used with events?
- No
- Yes
- Sometimes
- Never
Q7. Does it replace all null checks?
- Yes
- No
- Sometimes
- Always
Q8. Is it syntactic sugar?
- No
- Yes
- Maybe
- Sometimes
Q9. Can it be used with indexers?
- No
- Yes
- Sometimes
- Never
Q10. Does it impact performance?
- High
- Minimal overhead
- No
- Significant
๐ก Bonus Insight
The null-conditional operator reduces code clutter and potential null reference bugs.
๐ PDF Download
Need a handy summary for your notes? Download this topic as a PDF!