C 中的列舉 結構體與類

2021-08-21 10:59:25 字數 1215 閱讀 6805

注意:  namespace  定義命名空間的關鍵字

enum定義列舉的關鍵字

class  定義類的關鍵字

stuct  定義結構體的關鍵字

一、列舉

列舉是一組命名整型變數,列舉型別使用enum關鍵字宣告,c# 中的列舉是值型別(列舉包含自己的值,並且不能直接繼承或間接繼承)。

列舉列表中的每乙個符號代表乙個整數值,乙個比它前面的符號大的整數值。預設情況下,第乙個列舉符號的值是0.

如:  

enum days; 

二、結構體

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、大多數情況下,目標型別只是含有一些陣列,或以資料為主。

C結構體與列舉型別

struct 結構體標籤 結構體變數 include include struct user leader 3 int main int argc,char args return 0 通過.號進行成員訪問,若通過指標指向結構體,訪問為 p attr 或者是p attr,同理可得 include i...

列舉與結構體

1 結構體和列舉一樣,都是在 的主體外部宣告的。1 using system 2using system.collections.generic 3using system.linq 4using system.text 56 namespace structenum 7 15 struct rou...

結構體與列舉

但是轉念一想,別人寫的畢竟是別人寫的,那是別人的,雖然我能看懂,也能為我所用,但始終不是從自己腦子裡一點點想出來的,不是自己手指在鍵盤上乙個字乙個字的敲出來的。所以儘管自己都知道了,但是還是自己寫出來,總結出來,才算真正自己的東西。好了,下面來聊一下結構體是什麼吧。1 首先它是乙個體。既然是乙個體,...