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!

๐Ÿ” Navigation

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

Tags: