9.4.4.5 String literals

9.4.4.5 String literals
C# supports two forms of string literals: regular string literals and
verbatim string literals. A regular string
literal consists of zero or more characters enclosed in double quotes, as
in "hello, world", and may include
both simple escape sequences (such as /t for the tab character), and
hexadecimal and Unicode escape sequences.
A verbatim string literal consists of an @ character followed by a
double-quote character, zero or more characters,
and a closing double-quote character. [Example: A simple example is
@"hello, world". end example] In a
verbatim string literal, the characters between the delimiters are
interpreted verbatim, with the only exception
being a quote-escape-sequence. In particular, simple escape sequences, and
hexadecimal and Unicode escape
sequences are not processed in verbatim string literals. A verbatim string
literal may span multiple lines.
string-literal::
regular-string-literal
verbatim-string-literal
regular-string-literal::
" regular-string-literal-charactersopt "
regular-string-literal-characters::
regular-string-literal-character
regular-string-literal-characters regular-string-literal-character
regular-string-literal-character::
single-regular-string-literal-character
simple-escape-sequence
hexadecimal-escape-sequence
unicode-escape-sequence
single-regular-string-literal-character::
Any character except " (U+0022), / (U+005C), and new-line-character
verbatim-string-literal::
@" verbatim-string-literal-charactersopt "
Chapter 9 Lexical structure
61
verbatim-string-literal-characters::
verbatim-string-literal-character
verbatim-string-literal-characters verbatim-string-literal-character
verbatim-string-literal-character::
single-verbatim-string-literal-character
quote-escape-sequence
single-verbatim-string-literal-character::
Any character except "
quote-escape-sequence::
""
[Note: A character that follows a backslash character (/) in a
regular-string-literal-character must be one of the
following characters: ’, ", /, 0, a, b, f, n, r, t, u, U, x, v. Otherwise,
a compile-time error occurs. end note]
[Example: The example
string a = "Happy birthday, Joel"; // Happy birthday, Joel
string b = @"Happy birthday, Joel"; // Happy birthday, Joel
string c = "hello /t world"; // hello world
string d = @"hello /t world"; // hello /t world
string e = "Joe said /"Hello/" to me"; // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me"; // Joe said "Hello" to me
string g = "server//share//file.txt"; // //server/share/file.txt
string h = @"//server/share/file.txt"; // //server/share/file.txt
string i = "one/r/ntwo/r/nthree";
string j = @"one
two
three";
shows a variety of string literals. The last string literal, j, is a
verbatim string literal that spans multiple lines. The
characters between the quotation marks, including white space such as new
line characters, are preserved
verbatim. end example]
[Note: Since a hexadecimal escape sequence can have a variable number of
hex digits, the string literal "/x123"
contains a single character with hex value 123. To create a string
containing the character with hex value 12
followed by the character 3, one could write "/x00123" or "/x12" + "3"
instead. end note]
The type of a string-literal is string.
Each string literal does not necessarily result in a new string instance.
When two or more string literals that are
equivalent according to the string equality operator (§14.9.7), appear in
the same assembly, these string literals
refer to the same string instance. [Example: For instance, the output
produced by
class Test
{
static void Main() {
object a = "hello";
object b = "hello";
System.Console.WriteLine(a == b);
}
}
is True because the two literals refer to the same string instance. end
example]
9.4.4.6 The null literal
null-literal::
null
The type of a null-literal is the null type.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值