Sök…


Syntax

  • \ '- enda offert (0x0027)
  • \ "- dubbla offert (0x0022)
  • \\ - backslash (0x005C)
  • \ 0 - null (0x0000)
  • \ a - varning (0x0007)
  • \ b - backspace (0x0008)
  • \ f - formflöde (0x000C)
  • \ n - ny rad (0x000A)
  • \ r - vagn retur (0x000D)
  • \ t - horisontell flik (0x0009)
  • \ v - vertikal flik (0x000B)
  • \ u0000 - \ uFFFF - Unicode-tecken
  • \ x0 - \ xFFFF - Unicode-tecken (kod med variabel längd)
  • \ U00000000 - \ U0010FFFF - Unicode-tecken (för att generera surrogat)

Anmärkningar

Strängfångssekvenser transformeras till motsvarande karaktär vid sammanställningstiden . Vanliga strängar som råkar innehålla bakåt snedstreck inte omvandlas.

Till exempel notEscaped strängarna notEscaped och notEscaped2 nedan inte till en ny linje-karaktär, men kommer att förbli som två olika tecken ( '\' och 'n' ).

string escaped = "\n";
string notEscaped = "\\" + "n";
string notEscaped2 = "\\n";

Console.WriteLine(escaped.Length); // 1
Console.WriteLine(notEscaped.Length); // 2            
Console.WriteLine(notEscaped2.Length); // 2

Unicode-karaktärsekvenser

string sqrt = "\u221A";      // √
string emoji = "\U0001F601"; // 😁
string text = "\u0022Hello World\u0022"; // "Hello World"
string variableWidth = "\x22Hello World\x22"; // "Hello World"

Rymmer specialsymboler i karaktärslitteraler

apostrofer

char apostrophe = '\'';

bakstreck

char oneBackslash = '\\';

Rymmer speciella symboler i strängbokstäver

bakstreck

// The filename will be c:\myfile.txt in both cases
string filename = "c:\\myfile.txt";
string filename = @"c:\myfile.txt";

Det andra exemplet använder en verbatim sträng bokstavlig , som inte behandlar motstreck som ett flyktecken.

Citat

string text = "\"Hello World!\", said the quick brown fox.";
string verbatimText = @"""Hello World!"", said the quick brown fox.";

Båda variablerna kommer att innehålla samma text.

"Hej världen!", Sa den snabbbruna räven.

radbrytningar

Verbatim strängbokstäver kan innehålla nya linjer:

string text = "Hello\r\nWorld!";
string verbatimText = @"Hello
World!";

Båda variablerna kommer att innehålla samma text.

Oigenkända flyktningssekvenser ger fel i kompileringstid

Följande exempel kommer inte att sammanställas:

string s = "\c";
char c = '\c';

Istället kommer de att producera felet Unrecognized escape sequence vid kompileringstid.

Använda flukt-sekvenser i identifierare

Escape-sekvenser är inte begränsade till string och char literaler.

Anta att du måste åsidosätta en metod från tredje part:

protected abstract IEnumerable<Texte> ObtenirŒuvres();

och antar att tecknet Œ inte är tillgängligt i den teckenkodning du använder för dina C # -källfiler. Du har tur, det är tillåtet att använda rymningar av typen \u#### eller \U######## i identifierare i koden. Så det är lagligt att skriva:

protected override IEnumerable<Texte> Obtenir\u0152uvres()
{
    // ...
}

och C # -kompileraren vet att Œ och \u0152 är samma karaktär.

(Det kan dock vara en bra idé att byta till UTF-8 eller en liknande kodning som kan hantera alla tecken.)



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow