C# Tip: use the @ prefix when a name is reserved
Just a second! ๐ซท
If you are here, it means that you are a software developer. So, you know that storage, networking, and domain management have a cost .
If you want to support this blog, please ensure that you have disabled the adblocker for this site. I configured Google AdSense to show as few ADS as possible - I don't want to bother you with lots of ads, but I still need to add some to pay for the resources for my site.
Thank you for your understanding.
- Davide
You already know it: using meaningful names for variables, methods, and classes allows you to write more readable and maintainable code.
It may happen that a good name for your business entity matches one of the reserved keywords in C#.
What to do, now?
There are tons of reserved keywords in C#. Some of these are
- int
- interface
- else
- null
- short
- event
- params
Some of these names may be a good fit for describing your domain objects or your variables.
Talking about variables, have a look at this example:
var eventList = GetFootballEvents();
foreach(var event in eventList)
{
// do something
}
That snippet will not work, since event
is a reserved keyword.
You can solve this issue in 3 ways.
You can use a synonym, such as action
:
var eventList = GetFootballEvents();
foreach(var action in eventList)
{
// do something
}
But, you know, it doesn’t fully match the original meaning.
You can use the my
prefix, like this:
var eventList = GetFootballEvents();
foreach(var myEvent in eventList)
{
// do something
}
But… does it make sense? Is it really your event?
The third way is by using the @
prefix:
var eventList = GetFootballEvents();
foreach(var @event in eventList)
{
// do something
}
That way, the code is still readable (even though, I admit, that @ is a bit weird to see around the code).
Of course, the same works for every keyword, like @int
, @class
, @public
, and so on
Further readings
If you are interested in a list of reserved keywords in C#, have a look at this article:
๐ C# Keywords (Reserved, Contextual) | Tutlane
This article first appeared on Code4IT
Wrapping up
It’s a tiny tip, but it can help you write better code.
Happy coding!
๐ง
ABOUT THE AUTHOR
Davide Bellone is a software developer with more than 10 years of professional experience with Microsoft platforms and frameworks.
He loves learning new things and sharing these learnings with others: thatโs why he writes on this blog and is involved as speaker at tech conferences.
He's a Microsoft MVP ๐ and content creator on LinkedIn๐.