[C#, CSharp, C Sharp 教學 教程 教材 Tutorial] 通用型別系統(Common Type System, CTS)
YehYeh\'s Notepad yehyeh@gmail.com 

[C#, CSharp] 通用型別系統(Common Type System, CTS)

通用型別系統(Common Type System, CTS)

  • 通用型別系統(Common Type System)定義型別在執行時期(Runtime)如何宣告、使用及管理
  • 在執行時期提供跨語言整合(Cross-Language Integration)的功能
  • 所有的型別都是由基底型別(Base Type) System.Object所衍生
  • C#的型別實際上都定義在.net framework中,以別名(Alias)的方式來對應
  • 型別可分為實值型別(Value Type)參考型別(Reference Type)
    • 數值型別
      • 數值型別的變數會直接儲存資料
      • 資料存放在堆疊(Stack)中或直接嵌在程式碼中(inline)
      • 將A數值型別指派給B數值型別時,會複製一份資料,所以在記憶體中會有2份資料
      • 實值型別不可存放null值,除非宣告時在型別關鍵字後面加上?,表示其為Nullable
    • 參考型別
      • 參考型別的變數儲存資料的參考
      • 即資料是存放在Heap中,變數只存放資料在Heap中的位址
      • 將A數值型別指派給B數值型別時,只會將A記錄的位址(參考)複製給B,所以記憶體中依然只有一份資料
    CTS架構
C#型別與.Net Framework型別對應表
C#型別 .Net Framework型別 說明
byte System.Btye 8 位元不帶正負號的整數
♠ sbyte System.SBtye 8 位元帶正負號的整數
short System.Int16 16 位元帶正負號的整數
int System.Int32 32 位元帶正負號的整數
long System.Int64 64 位元帶正負號的整數
♠ ushort System.UInt16 16 位元不帶正負號的整數
♠ uint System.UInt32 32 位元不帶正負號的整數
♠ ulong System.UInt64 64 位元不帶正負號的整數
float System.Single 單精度 (32 位元) 浮點數
double System.Double 雙精度 (64 位元) 浮點數
bool System.Boolean 布林值 (true 或 false)
char System.Char Unicode (16 位元) 字元
decimal System.Decimal 96 位元十進位值
string System.String Unicode 字元,為不變且長度固定的字串
註:型別前面有♠符號者,表示非CLS相容
Δ 回到最上方