Disclaimer: I do not condone the use of this tip. I just find it interesting.
Today, I was using ReSharper to rename some constants in a class. The constants were named
point. I wanted to rename them to
pt. Resharper caught the obvious error in my thinking which is that the name
in is a reserved keyword in C# (duh).
What I found interesting is that ReSharper didn't go ahead and follow my instructions (thanks!) or tell me I was being dumb for trying to name something using the same name as the reserved word; it renamed it to
Huh. A quick search revealed that yes indeed, any member can begin with the @ character. You learn something new every day. Therefore this code is valid:
public class @foo
private string @baa = "sheep";
private void @black()
Console.Write("Hello" + @sheep);
I also noted that even Intellisense doesn't correctly colour-code when @ is used to prefix a class' name.
Follow-up: Apparently they are called verbatim identifiers. Thanks SubsonicDesignOfficial.