C#: por que tem um “@” antes da string?
Quando você está aprendendo uma linguagem nova, tem coisas que você vê em códigos de exemplo e não sabe sequer como perguntar que raios é aquilo, de tão fora do comum. Isso ocorreu comigo quando eu vi uma arroba antes de uma string. Que raios é isso?
Em strings
Um uso do sinal @ antes da string é fazer com que sequüências de escape não sejam usadas naquela string. Por exemplo, quando você escreve um caminho de diretórios, faz assim:
string path = "C:\\Windows\\System32";
Usando a arroba, você não precisaria duplicar as barras, poderia fazer assim:
string path = @"C:\Windows\System";
No entanto, dessa forma não é possível representar caracteres especiais na string, como “\n” e “\r“.
A linguagem Python usa uma sintaxe semelhante para informar que uma string é Unicode, prefixando a string com a letra “u”.
Em variáveis
Além das strings, é possível usar @ prefixando variáveis também. Obviamente, seu significado muda.
Há palavras reservadas na lingugagem. Quando uma palavra é reservada, não é possível criar identificadores (variáveis, classes, métodos…) com seu nome. O código abaixo causaria erro:
bool new = true;
new é uma palavra reservada. O compilador não entenderia como uma variável, e sim como o operador new, para instanciar novos objetos e causaria erro. Mas fazendo:
bool @new = true
o compilador é forçado a entender a palavra new no código como o nome de um identificador. No entanto, não aconselho essa prática, pois além de necessitar do uso de @ sempre que a variável for usada você pode causar erros difíceis de identificar nos momentos em que esquecer de colocar a @.
assine você também!




Deixe um comentário