What is nameof operator?
๐ก Concept: nameof Operator in C#
The nameof operator returns the string name of a variable, type, or member, enhancing refactoring and readability.
๐ Quick Intro
Instead of hardcoding string literals, nameof provides compile-time safety for names.
๐ง Analogy
Like asking for someone's name instead of guessing, ensuring accuracy.
๐ง Technical Explanation
- Returns the name of variables, methods, properties as strings.
- Helps avoid magic strings.
- Useful in logging, exception handling, and notifications.
- Evaluated at compile-time, so no runtime overhead.
- Supported since C# 6.0.
๐ฏ Use Cases
- โ Logging method or property names.
- โ Raising PropertyChanged events.
- โ Exception messages referring to member names.
- โ Code refactoring and maintenance.
๐ป Code Example
string propertyName = nameof(MyProperty);
Console.WriteLine(propertyName); // Outputs: MyProperty
public string MyProperty { get; set; }

โ Interview Q&A
Q1: What is nameof operator?
A: Returns the name of a variable/member as string.
Q2: Why use nameof instead of string literals?
A: Compile-time safety and refactoring support.
Q3: Since which C# version is nameof available?
A: Since C# 6.0.
Q4: Does nameof have runtime cost?
A: No, it's evaluated at compile-time.
Q5: Can nameof be used with expressions?
A: No, only identifiers.
Q6: Is nameof case sensitive?
A: Yes.
Q7: Can nameof be used with types?
A: Yes.
Q8: Is nameof helpful in logging?
A: Yes, it avoids hardcoded strings.
Q9: Does nameof throw exceptions?
A: No.
Q10: Can nameof be used with local variables?
A: Yes.
๐ MCQs
Q1. What does nameof operator return?
- Value
- Type
- Name as string
- Reference
Q2. Why prefer nameof over string literals?
- Performance
- Compile-time safety
- Readability
- Security
Q3. Since which C# version is nameof available?
- C# 5.0
- C# 6.0
- C# 7.0
- C# 8.0
Q4. Does nameof have runtime overhead?
- Yes
- No
- Sometimes
- Rarely
Q5. Can nameof be used with expressions?
- Yes
- No
- Maybe
- Sometimes
Q6. Is nameof case sensitive?
- No
- Yes
- Depends
- Maybe
Q7. Can nameof be used with types?
- No
- Yes
- Maybe
- Sometimes
Q8. Is nameof helpful in logging?
- No
- Yes
- Maybe
- Rarely
Q9. Does nameof throw exceptions?
- Yes
- No
- Sometimes
- Never
Q10. Can nameof be used with local variables?
- No
- Yes
- Maybe
- Sometimes
๐ก Bonus Insight
The nameof operator reduces errors and improves code maintainability by avoiding magic strings.
๐ PDF Download
Need a handy summary for your notes? Download this topic as a PDF!