What are nullable reference types in C#?
๐ก Concept: Nullable Reference Types in C#
Nullable reference types help developers express whether a reference variable can be null or not, reducing null reference exceptions.
๐ Quick Intro
Introduced in C# 8, nullable reference types add syntax and compiler checks for safer code.
๐ง Analogy
Think of nullable reference types as warning signs telling you which variables might be empty, helping avoid crashes.
๐ง Technical Explanation
- Non-nullable references must always point to an object.
- Nullable references are declared with a question mark (e.g., string?).
- The compiler warns about possible null assignments and dereferences.
- Helps catch null-related bugs at compile time.
- Can be enabled or disabled via project settings.
๐ฏ Use Cases
- โ Improving code safety in large projects.
- โ Avoiding runtime null reference exceptions.
- โ Enabling better static analysis and tooling.
- โ Clarifying intent of nullability in APIs.
๐ป Code Example
#nullable enable
string? nullableString = null; // Allowed
string nonNullableString = "Hello";
// Compiler warning if assigning null to nonNullableString
if (nullableString != null) {
Console.WriteLine(nullableString.Length);
}

โ Interview Q&A
Q1: What are nullable reference types?
A: Reference types that can explicitly be null or non-null.
Q2: When were they introduced?
A: C# 8.0.
Q3: How do you declare a nullable reference?
A: By appending '?' to type.
Q4: What benefit do they provide?
A: Helps catch null-related errors at compile time.
Q5: Can they be disabled?
A: Yes, via project settings.
Q6: Are value types nullable?
A: Nullable value types are separate concept.
Q7: Does this eliminate all null exceptions?
A: Helps reduce but not eliminate.
Q8: How does compiler warn about null?
A: With warnings during compilation.
Q9: Can APIs indicate nullability?
A: Yes, improving contract clarity.
Q10: Are nullable reference types backward compatible?
A: Yes.
๐ MCQs
Q1. What are nullable reference types?
- Value types
- Reference types that can be null or not
- Static types
- Const types
Q2. When were nullable reference types introduced?
- C# 6.0
- C# 7.0
- C# 8.0
- C# 9.0
Q3. How to declare a nullable reference?
- Use ref
- Use out
- Append ?
- Use const
Q4. What benefit do nullable reference types provide?
- Runtime check
- Catch null errors at compile time
- Ignore null
- Force null
Q5. Can nullable reference types be disabled?
- No
- Yes
- Sometimes
- Always
Q6. Are value types nullable?
- Yes
- No
- Nullable value types are separate
- Unknown
Q7. Does nullable reference types eliminate all null exceptions?
- Yes
- No
- Maybe
- Sometimes
Q8. How does compiler warn about null?
- With errors
- With warnings
- No warning
- With exceptions
Q9. Can APIs indicate nullability?
- No
- Yes
- Maybe
- Rarely
Q10. Are nullable reference types backward compatible?
- No
- Yes
- Sometimes
- Never
๐ก Bonus Insight
Nullable reference types are a powerful feature that improves code safety and clarity in C#.
๐ PDF Download
Need a handy summary for your notes? Download this topic as a PDF!