11.1 字符
Char,16位Unicode代碼值
兩個常量字段,Char.MinValue:定義為'\0';Char.MaxValue:定義為'\uffff';
Char.GetUnicodeCategory()方法,返回字符類型(貨幣/標點/數學符號等等)
Char與Int32的相互轉型:
11.2 字符串
只能是String s = "Jax";,而不能使用new來建立字符串
以上語句,在IL中,並沒有newobj,而是ldstr:因為字符串是一個常量,不可更改immutable
可以使用+操作符連接幾個字符串,在編譯時就會連接,生成一個字符串常量。避免在運行期連接—— 這時候使用StringBuilder
逐字字符串verbatim strings,即@"XXX"
使用String.Compare()或String.Equals()比較字符串
比較前使用ToUpper()而不是ToLower,因為前者性能好於後者
字符串留用,就是一個字符串倉庫,一般不用這個技術:System.Intern()
11.3 StringBuilder
StringBuilder內部有一個Char數組的字段,我們操縱的就是這個字段,此外還有一個ToString()方法 ,返回由字符數組組成的字符串。
超過容量就會分配更大的數組,復制字符,使用這個新數組,前一個數組會被垃圾收集
11.5 解析字符串來獲取一個對象
靜態Parse()方法,獲取String參數,返回相應的實例——這是一個工廠
FCL中,所有數值類型/DateTime/TimeSpan都提供了Parse方法,如:
Int32 x = Int32.Parse("123");