A string literal in C# represents a sequence of Unicode characters. There are two main types of string literals in C#–regular string literals and verbatim string literals. Verbatim string literals allow including special characters in a string directly, rather than having to specify them using an escape sequence. All string literals are of type string.
Here are some examples of string literals:
1
2
3
4
5
6
7
8
9
10
11
12
| string s1 = "Hi" ; string s2 = @"Hi" ; // Verbatim string literal--same thing string s3 = "C:\\Dir" ; // C:\Dir (escape seq for backslash) string s4 = @"C:\Dir" ; // No escape seq required string s5 = "\x48\x69" ; // Hi (hex codes for each character) string s6 = "\x20AC 1.99" ; // € 1.99 string s7 = "€ 1.99" ; // Unicode directly in string // UTF-32 characters using surrogate pairs string s8 = "\U00020213" ; // U+20213 (UTF-32) string s9 = "\ud840\ude13" ; // Equiv surrogate pair string s10 = "𠈓" ; // Same character |
Note:
- \u is followed by 4-byte UTF16 character code
- \U is followed by 8-byte UTF32 character code, which is then converted to equivalent surrogate pair