Arroba | @ | Csharp
- Arroba | @ | Csharp
No C#, o símbolo @ colocado antes de um identificador (nome de variável, método, classe etc.) serve para:
Permitir o uso de palavras reservadas como identificadores
Ou seja, o @ "escapa" o nome, para que você possa usar nomes que normalmente são palavras-chave do C#.
Exemplo prático
string @lock = "valor";
Console.WriteLine(@lock);
locké uma palavra reservada no C# (usada emlock(...) { })- Sem o
@, você não pode declarar uma variável chamadalock - Com o
@, você declara@lockque é válido e funciona como nome de variável
Detalhes importantes
- O compilador trata
@lockelockcomo o mesmo identificador em tempo de execução. - O
@é só para diferenciar no código fonte, não aparece no nome gerado. - Pode ser usado para nomes com espaços (não recomendado), mas só funciona para evitar conflito com keywords.
Outras palavras reservadas comuns que podem usar @:
@class@namespace@event@int@string@interface@for@while
Quando usar?
- Quando precisa de um nome que já é uma palavra-chave
- Para interoperabilidade com código externo que usa nomes assim (ex: bancos, APIs)
- Para evitar conflito em generated code
Exemplo:
int @int = 5; // legal, mas confuso, não recomendado
var @class = "X"; // legal, mas melhor evitar
Resumo rápido
| Código | É válido? | Uso |
|---|---|---|
int lock = 0; | ❌ inválido | lock é palavra reservada |
int @lock = 0; | ✅ válido | Escapa palavra reservada |
lock obj = null; | ❌ inválido | lock é reservada |
var @lock = "foo"; | ✅ válido | Variável chamada lock com @ |