Several times I've seen ReSharper generate code that looks like this:
delegate void myHandler(int i);
myHandler myHandlerContainer;
...
foreach (Delegate @delegate in myHandlerContainer.GetInvocationList())
{...}
Does the '@' in @delegate give that variable any special semantic meaning?
Or is it just a convention I didn't encounter before?
Some more details from MSDN:
from C# Language Specification: 2.4.2 Identifiers.
Prefixing with '@' therefore allows e.g. to derive from a class named "delegate" which might be defined in a library written in another language than C#.
In any other case I would not recommend to use this syntax and rather make up identifiers different from the C# keywords (e.g. valu instead of value) to increase code readability and avoid confusion whether there is any special meaning attached to it.
There is also another interesting fact about variable naming mentioned there:
The "@delegate" is to differentiate the variable name from the "delegate" keyword.