Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Texto verbatim -
O @ caractere especial serve como um identificador verbatim. Você o usa das seguintes maneiras:
Para indicar que um literal de cadeia de caracteres deve ser interpretado verbatim. O
@caractere nesta instância define um literal de cadeia de caracteres verbatim. Sequências de escape simples (como"\\"para uma barra invertida), sequências de escape hexadecimal (como"\x0041"para um A maiúsculo) e sequências de escape Unicode (como"\u0041"para um A maiúsculo) são interpretadas literalmente. Apenas uma sequência de escape de aspas ("") não é interpretada literalmente; ela produz uma aspa dupla. Além disso, no caso de sequências de escape de chave de cadeia de caracteres interpoladas verbatim ({{e}}) não são interpretadas literalmente; elas produzem caracteres de chave única. O exemplo a seguir define dois caminhos de arquivo idênticos, um usando um literal de cadeia de caracteres regular e outro usando um literal de cadeia de caracteres verbatim. Esse é um dos usos mais comuns de literais de cadeia de caracteres verbatim.string filename1 = @"c:\documents\files\u0066.txt"; string filename2 = "c:\\documents\\files\\u0066.txt"; Console.WriteLine(filename1); Console.WriteLine(filename2); // The example displays the following output: // c:\documents\files\u0066.txt // c:\documents\files\u0066.txtO exemplo a seguir ilustra o efeito de definir um literal de cadeia de caracteres regular e um literal de cadeia de caracteres verbatim que contêm sequências de caracteres idênticas.
string s1 = "He said, \"This is the last \u0063hance\x0021\""; string s2 = @"He said, ""This is the last \u0063hance\x0021"""; Console.WriteLine(s1); Console.WriteLine(s2); // The example displays the following output: // He said, "This is the last chance!" // He said, "This is the last \u0063hance\x0021"Para usar palavras-chave C# como identificadores. O
@caractere prefixa um elemento de código que o compilador deve interpretar como um identificador em vez de uma palavra-chave C#. O exemplo a seguir usa o@caractere para definir um identificador chamadoforque ele usa em umforloop.string[] @for = { "John", "James", "Joan", "Jamie" }; for (int ctr = 0; ctr < @for.Length; ctr++) { Console.WriteLine($"Here is your gift, {@for[ctr]}!"); } // The example displays the following output: // Here is your gift, John! // Here is your gift, James! // Here is your gift, Joan! // Here is your gift, Jamie!Para habilitar o compilador a distinguir entre atributos em casos de conflito de nomenclatura. Um atributo é uma classe que deriva de Attribute. Seu nome de tipo normalmente inclui o atributo de sufixo, embora o compilador não imponha essa convenção. Em seguida, o atributo pode ser referenciado no código por seu nome de tipo completo (por exemplo,
[InfoAttribute]ou seu nome abreviado (por exemplo,[Info]). No entanto, um conflito de nomenclatura ocorrerá se dois nomes de tipo de atributo abreviados forem idênticos e um nome de tipo incluir o sufixo Attribute , mas o outro não. Por exemplo, o código a seguir não é compilado porque o compilador não pode determinar se o atributo ouInfoAttributeoInfoatributo é aplicado àExampleclasse. Para obter mais informações, consulte CS1614.using System; [AttributeUsage(AttributeTargets.Class)] public class Info : Attribute { private string information; public Info(string info) { information = info; } } [AttributeUsage(AttributeTargets.Method)] public class InfoAttribute : Attribute { private string information; public InfoAttribute(string info) { information = info; } } [Info("A simple executable.")] // Generates compiler error CS1614. Ambiguous Info and InfoAttribute. // Prepend '@' to select 'Info' ([@Info("A simple executable.")]). Specify the full name 'InfoAttribute' to select it. public class Example { [InfoAttribute("The entry point.")] public static void Main() { } }