(disse Jesus) -
"Porque por tuas palavras serás justificado, e por tuas palavras serás
condenado."
Mateus 12:37
C#
- Sequências de Escape strings
![]() |
Hoje veremos as sequências de escape existentes na linguagem C#, seu significado e como usá-las. |
As combinações de caracteres consistindo de uma barra invertida (\) seguida por uma letra ou por uma combinação de dígitos são chamadas de "seqüências de escape".
Para representar um caractere de nova linha, aspas simples ou outros caracteres em uma constante de caractere, você deve usar as seqüências de escape. Uma seqüência de escape é considerada como um único caractere e, portanto, é válida como uma constante de caractere.
As seqüências de escape normalmente são usadas para especificar ações como retornos de carro e movimentos de tabulação em terminais e impressoras. Eles também são usados para fornecer representações literais de caracteres não imprimíveis e caracteres que geralmente têm significados especiais, como as aspas duplas (").
As seqüências de escape permitem que você envie caracteres de controle não gráficos para um dispositivo de exibição. Por exemplo, o caractere ESC (\033) é freqüentemente usado como o primeiro caractere de um comando de controle para um terminal ou impressora.
Algumas
seqüências de escape são específicas do dispositivo. Por exemplo, as seqüências
de escape de tabulação vertical e formfeed (\v e \f)
não afetam a saída da tela, mas executam operações de impressora apropriadas.
Você também pode usar a barra invertida (\) como um
caractere de continuação. Quando um caractere de nova linha (equivalente a
pressionar a tecla RETURN) segue imediatamente a barra invertida, o
compilador ignora a barra invertida e o caractere de nova linha e trata a
próxima linha como parte da linha anterior.
Isso é útil principalmente para definições de pré-processador mais longas que uma única linha. Por exemplo:
A linguagem C# define as seguintes sequências de caracteres escape:
Sequência Escape | Representação |
---|---|
\a | Sinal sonoro (alerta) |
\b | Backspace |
\f | Alimentação de formulário |
\n | Nova linha |
\r | Carriage return |
\t | Tabulação horizontal |
\v | Tabulação vertical |
\' | Aspas simples |
\" | Aspas duplas |
\\ | Barra invertida |
\? | Interrogação |
\ ooo | Caractere ASCII na notação octal |
\x hh | Caractere ASCII na notação hexadecimal |
\x hhhh | Caractere Unicode na notação hexadecimal. |
Essas seqüências de caracters escape são transformadas para o caractere correspondente em tempo de compilação.
Se uma barra
invertida(\) preceder um caractere que não aparece na tabela, o compilador manipula
o caractere indefinido como o próprio caractere. Por exemplo, \c é tratado como
um c.
Nota: As strings ou cadeias de caracteres comuns que contenham barras invertidas não
são transformadas.
Por exemplo, as strings escape1 e escape2 abaixo não são transformadas em um caractere de nova linha , mas permanecem com dois caracteres distintos ('\' e 'n')
string escape = "\n";
string escape1 = "\\" + "n";
string escape2 = "\\n";
Console.WriteLine(escape.Length); // 1
Console.WriteLine(escape1.Length); // 2
Console.WriteLine(escape2.Length); // 2
|
O caractere especial @ permite definir sequências de caracteres onde os caracteres escape serão interpretados literalmente. Ele é usado no início da definição da sequência de caracteres.
Assim no código abaixo, os caracteres \t e \n serão interpretados literalmente:
var semescape = @"\t significa um tab" + @" e \n signifca uma nova linha";
Outro exemplo muito usado:
var nomeArquivo = @"c:\temp\Arquivo.txt"
Sem usar o @ o caractere
\t seria interpretado como uma tabulação horizontal.
A cadeia de caracteres @"c:\temp\Arquivo.txt" seria identica a "c:\\temp\\Arquivo.txt"
A seguir outros exemplos usados:
using System;
namespace NetCore_Escape
{
class Program
{
static void Main(string[] args)
{
var comescape = "\t significa um tab" + " e \n significa uma nova linha";
var semescape = @"\t significa um tab" + @" e \n significa uma nova linha";
Console.WriteLine(comescape);
Console.WriteLine(semescape);
var nomeArquivo1 = @"c:\temp\Arquivo.txt";
var nomeArquivo2 = "c:\\temp\\Arquivo.txt";
Console.WriteLine(nomeArquivo1);
Console.WriteLine(nomeArquivo2);
var exemplo1 = "\"Bom dia!\", disse o mágico";
var exemplo2 = @"""Bom dia!"", respondeu o músico.";
var exemplo3 = "Bom\r\nDia, disse a dançarina";
var exemplo4 = "\'Bom dia\', disse a atriz";
var exemplo5 = "\\Bom dia\\, disse o palhaço";
Console.WriteLine(exemplo1);
Console.WriteLine(exemplo2);
Console.WriteLine(exemplo3);
Console.WriteLine(exemplo4);
Console.WriteLine(exemplo5);
Console.ReadKey();
}
}
}
|
Veja o resultado:
(disse Jesus) -
"Porque por tuas palavras serás justificado, e por tuas palavras serás
condenado."
Mateus 12:37
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
VB .NET - Realizando operações com List(of T) - Macoratti.net
C# - Usando Interfaces - Macoratti
C# - Revisão de conceitos - Interface - Macoratti
C# - Usando Interfaces - Macoratti
NET - As Interfaces IEnumerable e IEnumerator - Macoratti
C# - Implementando a interface INotifyPropertyChanged - Macoratti
NET - As Interfaces IEnumerable e IEnumerator - Macoratti