1. 程式人生 > >C# 支援兩種形式的字串:規則字串和逐字字串(@字串)

C# 支援兩種形式的字串:規則字串和逐字字串(@字串)

規則字串由包含在雙引號中的零個或多個字元組成(如 “hello”),並且可以包含簡單轉義序列(如表示製表符的 \t)、十六進位制轉義序列和 Unicode 轉義序列。
  逐字字串由 @ 字元後跟開始的雙引號字元、零個或多個字元以及結束的雙引號字元組成。一個簡單的示例就是 @“hello”。在逐字字串中,分隔符之間的字元逐字解釋,唯一的例外是“引號轉義序列”。具體說來,在逐字字串中不處理簡單轉義序列以及十六進位制 和 Unicode 轉義序列。逐字字串可以跨多行。
  規則字串字元中跟在反斜槓字元 () 後面的字元必須是下列字元之一:‘、"、\、0、a、b、f、n、r、t、u、U、x、v。否則將發生編譯時錯誤。
示例
string a = “hello, world”; // hello, world
string b = @“hello, world”; // hello, world
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”;
顯示了各種不同的字串。最後一個字串 j 是跨多行的逐字字串。引號之間的字元(包括空白,如換行符等)也逐字元保留。
由於十六進位制轉義序列可以包含數目可變的十六進位制數字,因此字串 “\x123” 只包含一個具有十六進位制值 123 的字元。若要建立一個包含具有十六進位制值 12 的字元,後跟一個字元 3 的字串,可以改寫為 “\x00123” 或 “\x12” + “3”。
“字串”的型別為 string。
每個字串不一定產生新的字串例項。當根據字串相等運算子確認為相等的兩個或更多個字串出現在同一個程式集中時,這些字串引用相同的字串例項。例如,
class Test
{
  static void Main() {
  object a = “hello”;
  object b = “hello”;
  System.Console.WriteLine(a == b);

}
}
產生的輸出為 True,這是因為兩個字串引用相同的字串例項。
C# 支援兩種形式的字串:規則字串和逐字字串(@字串),布布扣,bubuko.com
C# 支援兩種形式的字串:規則字元