關於數據類型 c#的類型一般分為值類型和引用類型兩種, 值類型的變數包含類型的實例,值類型存放棧中 引用類型的變數包含對類型實例的引用,引用類型放在堆中,在棧中設置一個指針指向堆 值類型: 1.整數型數值:所有的整型數值類型均為值類型,可以用文本進行初始化,每個整型類型的預設值都是0,c#支持以下預 ...
關於數據類型 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