C#中的枚舉、結構體與類

注意:  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、大多數情況下,目標類型只是含有一些數組,或以數據爲主。


發佈了24 篇原創文章 · 獲贊 28 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章