Code4IT

The place for .NET enthusiasts, Azure lovers, and backend developers

C# Tip: use the @ prefix when a name is reserved

2022-10-25 2 min read CSharp Tips
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!

🐧