共用方式為


string (C# 參考)

更新:2007 年 11 月

string 型別代表一連串的零或多個 Unicode 字元,string 是 .NET Framework 中 String 的別名 (Alias)。

雖然 string 是參考型別 (Reference Type),但是等號比較運算子 (== 和 !=) 的定義目的是比較 string 物件 (而不是參考) 的值。這讓字串相等的測試更具直覺性。例如:

string a = "hello";
string b = "h";
// Append to contents of 'b'
b += "ello";
Console.WriteLine(a == b);
Console.WriteLine((object)a == (object)b);

這會先顯示 "True" 然後再顯示 "False",因為字串的內容相同但是 a 和 b 並未參考相同的字串執行個體。

+ 運算子串連字串:

string a = "good " + "morning";

這會建立包含 "good morning" 的字串物件。

字串是「不可變動的」(Immutable),這表示字串物件建立之後,將無法變更該物件的內容 (雖然語法看起來好像允許您變更)。例如,當您撰寫這段程式碼時,編譯器 (Compiler) 實際上會建立新的字串物件來保存新的字串序列 (Sequence),並使用變數 b 繼續保存 "h"。

string b = "h";
b += "ello";

[] 運算子可以用來以唯讀方式存取 string 的個別字元:

string str = "test";
char x = str[2];  // x = 's';

字串常值是 string 型別而且可以寫成兩種格式,以引號括住和以 @ 括住。以引號括住的字串常值由雙引號 (") 包圍起來:

"good morning"  // a string literal

字串常值可以包含任何字元常值。也包括逸出序列 (Escape Sequence):

string a = "\\\u0066\n";

這個字串包含反斜線、字母 F 和新行。

注意事項:

逸出程式碼 \udddd (其中 dddd 是四位數的數字) 表示 Unicode 字元 U+dddd。八位數字的 Unicode 逸出程式碼也可以辨識:\udddd\udddd。

逐字字串常值是以 @ 做為開頭並放在雙引號裡。例如:

@"good morning"  // a string literal

逐字字串的優點是「不會」處理逸出序列,這讓它很容易撰寫,例如,完整檔案名稱:

@"c:\Docs\Source\a.txt"  // rather than "c:\\Docs\\Source\\a.txt"

若要在 @ 括住的字串裡包含雙引號,請重複雙引號:

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.

@ 符號的另一種用途是使用屬於 C# 關鍵字之參考的 (/reference) 識別項。

如需 C# 中字串的詳細資訊,請參閱字串 (C# 程式設計手冊)

範例

class SimpleStringTest 
{
   static void Main()
   {
      string a = "\u0068ello ";
      string b = "world";
      Console.WriteLine( a + b );
      Console.WriteLine( a + b == "Hello World" ); // == performs a case-sensitive comparison
   }
}
/* Output:
    hello world
    False
 */

C# 語言規格

如需詳細資料,請參閱 C# 語言規格中的下列章節:

  • 2.4.2 識別項

  • 2.4.4.5 字串常值

  • 4.2.3 字串型別

  • 7.9.7 字串等號比較運算子

請參閱

概念

C# 程式設計手冊

C# 程式設計手冊

參考

C# 關鍵字

參考型別 (C# 參考)

實值型別 (C# 參考)

其他資源

C# 參考

格式化數值結果表 (C# 參考)