枚举和结构
1.? 枚舉
a)??? 枚舉類型是一種特殊的值類型,它用于聲明一組具有相同性質的常量,
b)??? 聲明枚舉
在C#中使用關鍵字enum類聲明枚舉,其形式如下。
| enum? 枚舉名 { ???? List1=value1, ???? List2=value2, ???? List3=value3, ??? …. ???? ListN=valueN; } ? |
其中,大括號{}的內容為枚舉值列表,每個枚舉值均對應一個枚舉值名稱,value1~valueN為整數數據類型,List1~ListN則為枚舉值的標識名稱。
如果枚舉沒有初始化, 即省掉"=整型常數"時, 則從第一個標識符開始, 順次賦給標識符0, 1, 2, ...。但當枚舉中的某個成員賦值后, 其后的成員按依次加1的規則確定其值。
c)??? 枚舉成員訪問
你可以在任何需要使用符號常量的位置使用枚舉類型, 但是如果你想得到枚舉類型所代表的整型值就得對其轉型,語法:
枚舉名.成員名
(int)枚舉名.成員名
2.? 結構
結構是C#程序員用來定義自己的值類型的最普遍的機制。結構比枚舉更強大,因為它提供函數、字段、構造函數、操作符和訪問控制。結構類型也是先聲明后使用。聲明結構類型時要使用struct關鍵字
A)? 定義結構
語法: struct? 結構名 { //結構成員定義 }
例子:struct MyCat
?? ? {???
public int age;
???? ??? public string name;
?? ? }
B)? 結構成員
結構成員可分為兩類,一是實例成員,一是靜態成員。靜態成員通過結構名來訪問,而實例成員的訪問是通過創建結構類型的變量來訪問結構的實例成? ? 員。結構的構造函數必須帶參數
結構名? 變量名;
3.? 結構和枚舉的區別:
1)結構中的成員可以賦值;枚舉是取值,只讀的 2)結構是跟類很相似的一種數據結構;而枚舉是一個有限的整數序列 3)結構是值類型,當顯示的定義帶參的構造函數時,默認的無參構造函數依然存在,結構不能繼承,但可實現接口;而枚舉也是值類型,它是一組已命名的數值常量,它有助于定義具有一組特定值的數據類型,主要總結為 :確定并有限,不會出現非安全值。 4)定義結構的關鍵字是:static ;定義枚舉的關鍵字是:enum
4.類和結構的區別:
1)??? 結構屬于值類型,結構的值是直接存儲在棧空間中的;
? ? ? ? ? ? ? ? ? ? ?類屬于引用類型,類的值是存儲在托管堆中,在棧空間中保存指向該托管堆的內存地址。
2)??? 結構當顯示的定義帶參的構造函數時,默認的無參構造函數依然存在;
? ? ??? 類當顯示的定義帶參的構造函數時,默認的無參構造函數就不存在了
3)??? 結構不能繼承,但可實現接口;類可以繼承,也可以實現接口。
4)??? 結構的關鍵字:static;類的關鍵字是class
?
轉載于:https://www.cnblogs.com/slwx1514/p/10030443.html
總結
- 上一篇: 算法复杂度速查表
- 下一篇: 计算机考研政治考哪些知识,带你了解408