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

Learn More About C# ๐Ÿ“š

1. What is C#? ๐Ÿ‘‰ Explained
2. Main Features of C# ๐Ÿ‘‰ Explained
3. Difference Between C# and Java ๐Ÿ‘‰ Explained
4. Common Language Runtime (CLR) in C# ๐Ÿ‘‰ Explained
5. Common Type System (CTS) in C# ๐Ÿ‘‰ Explained
6. Common Language Specification (CLS) in C# ๐Ÿ‘‰ Explained
7. Value Types vs Reference Types in C# ๐Ÿ‘‰ Explained
8. What is a Namespace in C#? ๐Ÿ‘‰ Explained
9. Purpose of the 'using' Keyword in C# ๐Ÿ‘‰ Explained
10. Different Data Types in C# ๐Ÿ‘‰ Explained
11. Difference Between int and Int32 in C# ๐Ÿ‘‰ Explained
12. Difference Between float, double, and decimal in C# ๐Ÿ‘‰ Explained
13. What is the Default Value of a Boolean in C#? ๐Ÿ‘‰ Explained
14. What is Boxing and Unboxing in C# ๐Ÿ‘‰ Explained
15. What are the Different Types of Operators in C# ๐Ÿ‘‰ Explained
16. Difference Between Equals and == in C# ๐Ÿ‘‰ Explained
17. What is the Null-Coalescing Operator ?? in C# ๐Ÿ‘‰ Explained
18. What is the Ternary Operator in C# ๐Ÿ‘‰ Explained
19. How Does the Switch Statement Work in C# ๐Ÿ‘‰ Explained
20. What is Object-Oriented Programming in C# ๐Ÿ‘‰ Explained
21. What are the Four Pillars of OOP in C# ๐Ÿ‘‰ Explained
22. What is Encapsulation in C# ๐Ÿ‘‰ Explained
23. What is Inheritance in C# ๐Ÿ‘‰ Explained
24. What is Polymorphism in C# ๐Ÿ‘‰ Explained
25. What is Abstraction in C# ๐Ÿ‘‰ Explained
26. What is an Abstract Class in C# ๐Ÿ‘‰ Explained
27. What is an Interface in C# ๐Ÿ‘‰ Explained
28. Can a Class Implement Multiple Interfaces in C#? ๐Ÿ‘‰ Explained
29. Difference Between Abstract Class and Interface in C# ๐Ÿ‘‰ Explained
30. How Do You Create a Class in C#? ๐Ÿ‘‰ Explained
31. What is a Constructor in C# ๐Ÿ‘‰ Explained
32. What Are the Types of Constructors in C# ๐Ÿ‘‰ Explained
33. What is a Static Constructor in C# ๐Ÿ‘‰ Explained
34. Difference Between Static and Non-Static Members in C# ๐Ÿ‘‰ Explained
35. What is the Use of 'this' Keyword in C# ๐Ÿ‘‰ Explained
36. What is a Destructor in C# ๐Ÿ‘‰ Explained
37. What is Object Initializer Syntax in C# ๐Ÿ‘‰ Explained
38. What is the Difference Between Field and Property in C# ๐Ÿ‘‰ Explained
Share:

Tags:


Feedback Modal Popup