How Heavy Is the nameof Expression in C#?
With proof, we'll be looking at how heavy (or light!) the C# nameof expression is and what that means for your code.
nameof expression is evaluated at compile time! If we quote the documentation:
nameofexpression is evaluated at compile time and has no effect at run time.
I always assumed it was reflection based and I would feel guilty using it thinking it would be expensive to call. Turns out it's at constant time, so use it without fear!
We can prove this by looking at what the result of
nameof gets compiled to by looking at the following SharpLab.io example:
Where we can see that the result of
nameof is simply compiled into a
string. No more worrying for me about how it will impact log entries in terms of performance 🥳