C 中資料型別的區別

2021-09-30 11:10:03 字數 1051 閱讀 4148

剛開始學習c#,對其中的概念還是不太熟悉。今天突然對資料型別有點糊塗了,所以在此總結一下。

c#中的資料型別主要有兩種:

1.       值型別

a)       整型

b)       字元型

c)        浮點型

d)       布林型

e)       列舉型別

2.       引用型別

a)       陣列型別

b)       類型別

類型別是由字段資料(成員變數)和操作字段資料的成員(屬性、方法、建構函式、事件等)所構成的自定義型別。其中字段資料表示類例項(物件)的狀態。

c)        委託型別

用delegate 關鍵字定義的型別就是委託。委託是一種呼叫已封裝方法的引用型別,通常情況下,委託型別可以在命名空間、結構、類中定義,定義位置的選擇與委託的作用域有關。委託不包含成員,只作為方法的指標,稱為委託方法。

委託型別根據宣告的主體不同可以分為兩種:一種由.net框架系統提供的類庫中預定義的委託型別,屬於系統委託型別;第二種是根據應用使用者自行建立的委託型別,成為使用者自定義委託型別。

d)       介面型別

1.儲存方面。值型別直接儲存其值,變數本身就包含了其實例資料,而引用型別儲存的只是例項資料的記憶體引用。因此,乙個值型別變數就永遠不會影響到其他的值型別變數,而兩個引用型別變數則很有可能指向同一位址,從而發生相互影響。  

3. 值型別均隱式派生自system.valuetype,而system.valuetype又直接派生於system.object,每種值型別均有乙個隱式的預設建構函式來初始化該型別的預設值,注意所有的值型別都是密封(sealed)的,所以無法派生出新的值型別。而且system.valuetype本身是乙個類型別,而不是值型別,因為它重寫了object的equals()方法,所以對值型別將按照例項的值來比較,而不是比較引用位址。  

c# 的統一型別系統,使得值型別可以轉化為物件來處理,這就是常說的裝箱和拆箱。由於裝拆箱需要裝建全新物件或做強制型別轉換,這些操作所需時間和運算要遠遠大於賦值操作,因此不提倡使用它,同時也要盡量避免隱式裝拆箱的發生。

oracle 中資料型別的區別

1 char的長度是固定的,而varchar2的長度是可以變化的,比如,儲存字串 abc 對於char 20 表示你儲存的字元將佔20個位元組 包括17個空字元 而同樣的varchar2 20 則只占用3個位元組的長度,20只是最大值,當你儲存的字元小於20時,按實際長度儲存。2 char的效率比v...

C 中的資料型別

一 值型別 三種 1 簡單型別 types a 整數型別 八種 sbyte 有符號8位整數 128 127 byte 無符號8位整數 0 255 short 有符號16位整數 32768 32767 ushort 無符號16位整數 0 65535 int 有符號32位整數 2147483648 21...

c 中的資料型別

c 中的資料型別大致分為兩類 變數 常量,下面具體介紹一下 一.變數 變數分為一下幾種 布林變數 bool 佔乙個位,可以賦值為true 1 false 0 個人理解就是巨集定義,寫在標頭檔案中 字元型變數 char 佔乙個位元組 雙位元組型變數 一般佔2個位元組 用途以後再說 整形變數 int l...