回覆列表
  • 1 # higmn44161

    1. 構造字串在C#中, 不能使用new 運算子從一個文字常量字串構造一個String 物件,因為String 類中沒有提供接受字串的引數的建構函式。1.string str = " Hello World"; // 對的2.string str2 = new string("Hello");//錯誤。這時候透過ldstr(Load string)指令來建立一個String 物件的, 而不是用newobj建立物件例項的。

    2. String 物件是不可變的, 具體指字串一旦建立了, 就不能更改、不能變長或變短。 主要是因為 String 中的索引器是隻讀的, 因為String是不可變的,這就使得在操作或訪問一個字串時不會發生執行緒同步問題。String類中索引器定義:1.public char this [int index]2.{ get; }有些朋友對於String 不可變 有一些誤解, 可能因為下面的例子:1.string str = " Hello World";2.str = "Hello";

    3.Console.Write(str); // 輸出 Hello有些朋友可能認為String物件str被修改了, 其實並不是這樣的,String物件str已經重新指向了一個新的字串常量:“Hello”, 而不是在原來字串上修改, 這時候因為"Hello World"因為沒有引用了,所以會認為是垃圾,會被垃圾回收。String 字串中還有一個 字串留用(string interning)技術, 在這裡我就不介紹了。 3. 而StringBuilder是可變的, 可利用它高效地對字串和字元進行動態處理。可以透過Append和Insert方法等方法來更改字元陣列的內容,而不會造成在託管堆上分配新物件。

  • 中秋節和大豐收的關聯?
  • 胃腸型感冒如何治療?