C# - Usos e significados do símbolo @


O famoso símbolo @ - lemos arroba em português - pode ter um significado diferente daquele que você esta acostumado a usar dependendo do contexto de seu uso na linguagem C#.

Vamos a eles...

1 - Usar @ na frente de uma palavra reservada da linguagem C#

Se você usar o símbolo @ na frente de uma palavra reservada da linguagem C# ela passa a ser vista como um identificador e pode ser usada como uma variável

Exemplo:

using System;

namespace Usando_Arroba
{
    class Program
    {
        static void Main(string[] args)
        {
            int @if;                 
 // usando if como um identificador
            int @While = 0;      
//e omitindo o seu significado real
            string @class = "Jose Carlos Macoratti";

            Console.WriteLine(" O conteúdo de @class é : " + @class);

            for (@if = 0; @if < 5; @if++)
                Console.WriteLine("O valor de @if é :  " + @if);

            while (@While < 5)
            {
                Console.WriteLine("O valor de @while é " + @While);
                @While++;
            }
            Console.ReadLine();
        }
    }
}

Note que as palavras reservadas if, while e class quando precedidas do símbolo @ comportam-se como identificadores para variáveis.

2 - Usar @ para preservar espaços

Podemos usar espaços em brancos usando o símbolo @ antes de uma string.

O exemplo abaixo mostra a string contendo espaços extras que estamos preservando usando o símbolo @.

using System;

namespace Usando_Arroba_2
{
    class Program
    {
        static void Main(string[] args)
        {
            String texto = @"Macoratti .net
                            quase tudo
                            para Visual Basic,                       
                            C# e ASP .NET
                            ";
            Console.WriteLine(texto);
            Console.ReadLine();
        }
    }
}

3 - Usar @ na frente de uma expressão string para incluir um caractere especial

Se você precisar incluir qualquer caractere especial em um string basta colocar o símbolo @ na frente da string.

Um exemplo clássico é a definição de uma string de conexão com um banco de dados na linguagem C# onde os símbolos \ são usados.

Neste caso a utilização previne a injeção SQL.

using System;

namespace Usando_Arroba3
{
    class Program
    {
        static void Main(string[] args)
        {
            string strConexao = @"Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;";
            string str = @"Exemplo de uso de ' caractere especial em \n uma string ";

            Console.WriteLine("String com conexao " + str);
            Console.WriteLine("\n");
            Console.WriteLine("String de conexao : " + strConexao);
            Console.ReadLine();
        }
    }
}

A seguir uma tabela com os principais caracteres especiais que podem ser usados:

Sequência Escape Nome do Caractere
\' Single quote
\" Double quote
\\ Backslash
\0 Null
\a Alert
\b Backspace
\f Form feed
\n New line
\r Carriage return
\t Horizontal tab
\U Unicode escape sequence for surrogate pairs.
\u Unicode escape sequence
\v Vertical tab
\x Unicode escape sequence similar to "\u" except with variable length.

Mat 7:15 Guardai-vos dos falsos profetas, que vêm a vós disfarçados em ovelhas, mas interiormente são lobos devoradores.

Mat 7:16 Pelos seus frutos os conhecereis. Colhem-se, porventura, uvas dos espinheiros, ou figos dos abrolhos?

Mat 7:17 Assim, toda árvore boa produz bons frutos; porém a árvore má produz frutos maus.

Mat 7:18 Uma árvore boa não pode dar maus frutos; nem uma árvore má dar frutos bons.

 

Veja os Destaques e novidades do SUPER DVD VB 2013 (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira...

Quer aprender C# ??

Chegou o Super DVD C# 2013 com exclusivo material de suporte e vídeo aulas com curso básico sobre C#.

        Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti