注意: namespace 定義命名空間的關鍵字
enum定義枚舉的關鍵字
class 定義類的關鍵字
stuct 定義結構體的關鍵字
一、枚舉
枚舉是一組命名整型變量,枚舉類型使用enum關鍵字聲明,c# 中的枚舉是值類型(枚舉包含自己的值,並且不能直接繼承或間接繼承)。
枚舉列表中的每一個符號代表一個整數值,一個比它前面的符號大的整數值。默認情況下,第一個枚舉符號的值是0.
如:
enum Days{Sun,Mon,Tue,Wed,Thu,Fri,Sat};
二、結構體
1、在C#中,結構體是值類型的數據結構,它使得一個單一的變量可以存儲在各種數據類型的相關數據。struct語句爲程序定義了一個帶有多個成員的新的是數據類型。
如:
struct Books
{
public string title;
public stringauthor;
public stringsubject;
public int book_id;
}
2、C# 結構體的特點:
(1)、可帶有方法、字段、索引、屬性、運算方法和事件
(2)、可以有構造方法,但不可以有析構方法。並且不能爲結構體定義默認的構造方法。
(3)、不能繼承和被繼承
(4)、結構可以實現接口。
(5)、因爲結構不能被繼承,所以結構體內的成員不能被指定爲abstract、virtua或protected。
(6)、結構體的創造可以不使用new操作符可以被實例化。在沒有使用new關鍵字的情況下,只有在所有的字段都被初始化,字段才被賦值,對象才被使用。
三、類與結構體的比較
1、類是引用類型,它在棧中分配空間,棧中保存的只是引用或者說棧中保存的只是地址。結構體是值類型、在 棧中分配空間。
2、結構體不支持繼承。可以實現一個或多個接口。
3、結構體不能“再”聲明默認的構造方法。
四、結構體和類的適用場所。
1、當堆棧的空間有限,且有大量的邏輯對象時,用類。
2、對於點、矩形、顏色這樣的輕量對象、如果要聲明一個含有許多顏色對象的數組,則CLR需要爲每個對象分配內存,在這種情況下,使用結構體的成本小。
3、在表現抽象和多級別的對象層次時.選類(結構體不支持繼承)。、
4、大多數情況下,目標類型只是含有一些數組,或以數據爲主。