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!

๐Ÿ” Navigation

๐Ÿ’ฌ Feedback
๐Ÿš€ Start Learning
Share:

Tags: