在C#語言中,符合公共語言規范(CLS)的數據類型可以分為兩類:值類型和引用類型。兩者存在很大的區別,值類型表示的是實際數據,只是將值存放在內存中。值類型都存儲在棧中。而引用類型數據都存儲在堆中。
1、值類型
(1)整形
(2)字符型
在C#中,字符類型(char)采用了Unicode字符集,一個Unicode的標准字符長度為16位(兩字節)。
(3)浮點型
C#提供了三種師叔類型:單精度類型(float)、雙精度類型(double)和十進制小數類型(decimal)。<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgIDxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140317/20140317090722269.jpg" alt="Z喎?http://www.Bkjia.com/os/" target="_blank" class="keylink">系統默認的浮點數為double型,要聲明float和decimal類型還需要在小數後面加上後綴F和M,如:2(代表system.double);2F(代表system.single);2M(代表system.decimal)。
(4)布爾型
C#中的bool類型對應於system.Boolean結構。可能的取值為True和False,占用內存長度為1字節/8位。(*不再有和其他數值的對應關系,不能認為0是FALSE,其他值是TRUE)
(5)枚舉類型
枚舉類型是一種復合值類型,主要用於表示一組邏輯上相關聯的項的組合,由關鍵字enmu來定義。
enmu Fruit {apple,banana,pear,peach};
Fruit f1;
f1=Fruit.banana
(6)結構類型
結構體struct類是用戶自定義的值類型數據類型。把一系列相關的信息組織成一個單一實體的過程,就是創建一個結構的過程。
struct person
{
string m_name; //姓名
int m_age; //年齡
string m_sex; //性別
}
2、引用類型
引用類型包括類(class)、接口(interface)、委托(delegate)和數組(array)。
(1)類(class)
類是一組具有相同數據結構和相同操作的對象集合。創建類的實例必須使用關鍵字new來進行聲明。
類和結構之間的根本區別在於:結構是值類型,而類是引用類型。對於值類型,每個變量直接包含自身的所有數據,每創建一個變量,就在內存中開辟一塊區域;而對於引用類型,每個變量只存儲對目標存儲數據的引用,每創建一個變量,就增加一個指向目標數據的指針。
(2)接口(interface)
應用程序之間要相互調用,就必須事先達成一個協議,被調用的一方在協議中對自己所能提供的服務進行描述。在C#中,這個協議就是接口。接口定義中對方法的聲明,既不包括訪問限制修飾符,也不包括方法的執行代碼。(*如果某個類繼承了一個接口,那麼它就要實現該接口所定義的服務。也就是實現接口中的方法。)
(3)委托(delegate)
委托用語封裝某個方法的調用過程。
委托的使用過程分為3步:
1.定義 delegate void HelloDelegate();
2.實例化 HelloDelegate hd = new HelloDelegate(p1.Say); //p1.Say調用的方法
3.調用 hd();
(4)數組(array)
數組主要用於同一數據類型的數據進行批量處理。在C#中,數組需要初始化之後才能使用。
如:int[] array1 = new int[3]{2,3,5};
int[] array1 = {2,3,5};
在數組中,最常用的一個屬性是Length,他表示數組的長度。
關於引用類型的具體內容和使用方法,會在以後的博客中具體介紹。