9.執行下面代碼后:
String strTemp =”abcdefg 某某某”;
Int i=System.Text.Encoding.Default.GetBytes(strTemp).Length;
Int j=strTemp.Length;
問:
i=?
j=?
i=(14 ) ;j=(11 ) 中文兩個字節
10.C#中,string str = null 與 string str =”",請盡量用文字說明區別。
string str =”"初始化對象分配空間
而string str=null初始化對象
11.詳述.NET里class和struct的異同
結構與類共享幾乎所有相同的語法,但結構比類受到的限制更多:
盡管結構的靜態字段可以初始化,結構實例字段聲明還是不能使用初始值設定項。
結構不能聲明默認構造函數(沒有參數的構造函數)或析構函數。
結構的副本由編譯器自動創建和銷毀,因此不需要使用默認構造函數和析構函數。實際上,編譯器通過為所有字段賦予默認值(參見默認值表)來實現默認構造函數。結構不能從類或其他結構繼承。
結構是值類型 — 如果從結構創建一個對象并將該對象賦給某個變量,變量則包含結構的全部值。復制包含結構的變量時,將復制所有數據,對新副本所做的任何修改都不會改變舊副本的數據。由于結構不使用引用,因此結構沒有標識 — 具有相同數據的兩個值類型實例是無法區分的。C# 中的所有值類型本質上都繼承自 ValueType,后者繼承自 Object。
編譯器可以在一個稱為裝箱的過程中將值類型轉換為引用類型。
結構具有以下特點:
結構是值類型,而類是引用類型。
向方法傳遞結構時,結構是通過傳值方式傳遞的,而不是作為引用傳遞的。
與類不同,結構的實例化可以不使用 new 運算符。
結構可以聲明構造函數,但它們必須帶參數。
一個結構不能從另一個結構或類繼承,而且不能作為一個類的基。所有結構都直接繼承自 System.ValueType,后者繼承自 System.Object。
結構可以實現接口。
在結構中初始化實例字段是錯誤的。