常見數據類型
關於數據類型 c#的類型普通分爲值類型和援用類型兩種,
值類型的變量包含類型的實例,值類型寄存棧中
援用類型的變量包含對類型實例的援用,援用類型放在堆中,在棧中設置一個指針指向堆
值類型:
1.整數型數值:一切的整型數值類型均爲值類型,能夠用文本停止初始化,每個整型類型的默許值都是0,c#支持以下預定義的整型數值類型
sbyte 8位帶符號整數,
byte 8位無符號整數,
short 16位帶符號整數
ushort 16位無符號整數
int 32位帶符號整數
uint 32位無符號整數
long 64位帶符號整數
ulong 64位無符號整數
2.浮點型數值:一切浮點型數值均爲值類型 ,能夠運用文本停止初始化,每個整型類型的默許值都是0,c#支持以下預定義的浮點型數值類型
float 大約6-9位數字 4個字節
double 大約15-17位數字 8個字節
decimal 大約28-29位數字 16個字節
3.bool類型,它是一個布爾值,可爲true和false
4.char類型,默許值是\0,即U+0000
5.enum 枚舉類型,它是由整型數值類型的一組命名常量定義的值類型,枚舉成員的關聯常數值爲int,從0開端,並按定義文本次第遞增1
6.構造類型 (stuct type;stucture type)是一種可封裝數據和相關功用的值類型
7.可爲空的值類型 ,T?表示其根底值類型T的一切值及額外的null 值。
援用類型:
1.內置援用類型
1.1:動態類型 dynamic ,表示變量的運用和對其成員的援用繞過編譯時類型檢查
1.2:對象類型 object,c#的統一類型系統中,一切的類型都是直接或間接從System.Object 繼承的。
1.3:字符串類型 string ,表示0個或多個Unicode字符的序列。
1.4:拜託類型 delegate 聲明和辦法簽名類似
2.援用類型能夠運用以下停止聲明
2.1: class
2.2:Interface
2.3:可爲null的援用類型
類型之間能夠經過某種手腕轉換成另一品種型
類型轉換分爲
1.默許類型轉換 無符號和有符號之間轉換時,假如無符號的位數和有符號之間位數分歧的話不能默許轉換,一切整型均可默許轉換爲decimal
1.1 子類轉換成父類時
1.2 短精度向高精度轉換時(列:byte->int->long->float->double)
2.強迫類型轉換 數據類型判別 關鍵字 is,此關鍵字能夠檢測下能否能夠轉換爲目的類型,
2.1 變量前加目的類型停止強迫轉換 失敗時會拋錯
2.2 運用as 關鍵字停止強迫轉換 失敗時會設置爲null