1
resposta

Barras simples ou duplas

Boa tarde.

Uma dúvida, neste código temos o "C:\FIGURA" com apenas uma barra. Quando vamos usar, em determinados casos, por exemplo:

Db.InitialDirectory = "C:\\WindowsForms\\Curso\\CursoWindowsForms\\CursoWindowsForms\\Imagens";

Precisamos usar barras duplas.

No caso desse código, por se tratar de um argumento eu não preciso colocar barras duplas?

1 resposta

Olá Pedro. A \ (barra) é um literal, com ele você pode quebrar linhas, "dar um tab", passar " dentro do texto, se você colocar o mouse em cima de uma variável(que tenha \) vai ver essas barras, porém se clicar na "lupa" vai ver a variável apenas com uma , coloque um break point dentro do método EscreveNoConsole e veja as variável como aparece. No exemplo de pular linha fica mais claro, se colocar o mouse em cima do parametro texto, vai ver que aparece ""Este texto tem uma\r\nquebra de linha.....", porém ao acessar o conteúdo da variável através da "lupa", vai ver que o \r\n sumiu, o texto após estará na linha de baixo, conforme solicitado através do \r\n. Execute:

class Program
{
    static void Main(string[] args)
    {
        string textoComTab = "Este texto\ttem um tab depois do texto, este tab esta representada por \\t";
        EscreveNoConsole(textoComTab);
   string textoQuebrandoLinha = "Este texto tem uma\r\nquebra de linha após uma, esta quebra esta representada por \\r\\n";
        EscreveNoConsole(textoQuebrandoLinha);

        string textoComAspas = "As \"aspas\" indicam o início e fim de um texto programado, a \\ é utilizado para aceitar as \" ";
        EscreveNoConsole(textoComAspas);

        string textoIgnorandoLiterais = @"Você pode colocar um @ antes de iniciar uma string, ela ignora os literais \t e outros não funcionam se tiver @ , portanto aceita a \, c:\meu-caminho\";
        EscreveNoConsole(textoIgnorandoLiterais);


        Console.ReadKey();

    }

    static void EscreveNoConsole(string texto)
    { //<<-- Coloque um break point aqui e veja o que esta na variavel texto, veja o que aparece ao colocar o mouse em cima e depois ao clicar na lupa.
        Console.WriteLine(texto);
        Console.WriteLine("-----------------------------------------------");

    }

} }