黑馬程式設計師 列舉型別和資料結構

2021-06-18 01:31:35 字數 2357 閱讀 8722

---------------------- asp.net+android+io開發s、.net培訓、期待與您交流! ---------------------- 

列舉型別

列舉常量是列舉型別中的值,即列舉值。列舉型別是一種使用者定義的型別,只有使用者在程式中定義它後才能被使用。使用者通常利用列舉型別定義程式中需要使用的一組相關的符號常量。列舉型別的定義格式為:

enum   《列舉型別名》   ;   

它是一條列舉型別定義語句,該語句以enum保留字開始,接著為列舉型別名,它是使用者命名的乙個識別符號,以後就直接使用它表示該型別,列舉型別名後為該型別的定義體,它是由一對花括號和其中的列舉表所組成,列舉表為一組用逗號分開的由使用者命名的符號常量,每個符號常量又稱為列舉常量或列舉值。如: 

(1)   enum   color;   

(2)   enum   day;   

第一條語句定義了乙個列舉型別color,用來表示顏色,它包含三個列舉值red,yellow和blue,分別代表紅色、黃色和蘭色。   

第二條語句定義了乙個列舉型別day,用來表示日期,它包含7個列舉值,分別表示星期日、星期一至星期六。   

一種列舉型別被定義後,可以象整型等預定義型別一樣使用在允許出現資料型別的任何地方。如可以利用它定義變數。

(1)   enum   color   c1,   c2,c3;   

(2)   enum   day   today,   workday;   

(3)   c1=red;   

(4)   workday=wed;   

第一條語句開始的保留字enum和型別識別符號color表示上述定義的列舉型別color,其中enum可以省略不寫,後面的三個識別符號c1,c2和c3表示該型別的三個變數,每乙個變數用來表示該列舉表中列出的任乙個值。   

第二條語句開始的兩個成分(成分之間的空格除外)表示上述定義的列舉型別day,同樣enum可以省略不寫,後面的兩個識別符號today和workday表示該型別的兩個變數,每乙個變數用來表示該列舉表中列出的七個值中的任乙個值。   

第三條語句把列舉值red賦給變數c1,第四條語句把列舉值wed賦給變數workday。   

在乙個列舉型別的列舉表中列出的每乙個列舉常量都對應著乙個整數值,該整數值可以由系統自動確認,也可以由使用者指定。若使用者在列舉表中乙個列舉常量後加上賦值號和乙個整型常量,則就表示列舉常量被賦予了這個整型常量的值。如:   

enum   day;   

使用者指定了sun的值為7,mon的值為0。 

若使用者沒有給乙個列舉常量賦初值,則系統給它賦予的值是它前一項列舉常量的值加1,若它本身就是首項,則被自動賦予整數0。如對於上述定義的color型別,red,yellow和blue的值分別為0,1和2;對於剛被修改定義的day型別,各列舉常量的值依次為7,0,1,2,3,4,5,6。   

由於各列舉常量的值是乙個整數,所以可把它同一般整數一樣看待,參與整數的各種運算。又由於它本身是乙個符號常量,所以當作為輸出資料項時,輸出的是它的整數值,而不是它的識別符號,這一點同輸出其他型別的符號常量是一致的。 

小注:(1)列舉型別的作用可以簡單理解成限制使用者不能隨意賦值,只能定義宣告列舉型別列舉的值。

(2)定義列舉時,不能是int型別。

(3)列舉型別的變數可以強轉成int型別。

(4)如何把乙個字串轉換成列舉型別。:*** = (gender)(enum.parse(typeof(gender), "字串"));

下面是字串轉成列舉型別的小應用

資料結構

資料結構是指相互之間存在著一種或多種關係的資料元素的集合和該集合中資料元素之間的關係組成。

結構體屬於資料結構,封裝著一組整體作為乙個邏輯單位的資料和行為

一般我們會糾結於用類還是用結構體。

結構是值型別:值型別在堆疊上分配位址,所有的基型別都是結構型別,例如:int 對應system.int32 結構,string 對應 system.string 結構 ,通過使用結構可以建立更多的值型別

類是引用型別:引用型別在堆上分配位址堆疊的執行效率要比堆的執行效率高,可是堆疊的資源有限,不適合處理大的邏輯複雜的物件。所以結構處理作為基型別對待的小物件,而類處理某個商業邏輯,因為結構是值型別所以結構之間的賦值可以建立新的結構,而類是引用型別,類之間的賦值只是複製引用

從繼承性來說:

雖然結構不能被繼承 可是結構能夠繼承介面,方法和類繼承介面一樣

從內部結構來說:

那如何來選擇到底用類還是用結構呢?

黑馬程式設計師 列舉 常量 結構

windows phone 7手機開發 net培訓 期待與您交流!常量 語法 const 型別 常量名 常量值 在定義時賦值,在其他地方不允許賦值 1 可以重複使用 2 防止寫程式被惡意修改 列舉我們定義一種列舉型別並且在定義這種型別時我們要指定這個型別的所有的值。語法 enum 自己起的型別名稱 ...

黑馬程式設計師 列舉

asp.net android ios開發 net培訓 期待與您交流!黑馬程式設計師 列舉 一 列舉是什麼?1.列舉就是要讓其個型別的變數的取值只能是若干個固定的值中的乙個,否則編譯器報錯。列舉可以讓編譯器在編譯時就可以控制源程式中趕寫的非法值,普通變數的方式在開發階段無法實現這一目標。2.當列舉中...

黑馬程式設計師 列舉

asp.net unity開發 net培訓 期待與您交流!黑馬程式設計師 列舉 一 基礎概念及定義 定義 是指將變數的值一一列出來,變數的值只限於列舉出來的值的範圍內。格式 訪問修辭符 enum 列舉名 特性 一種特殊形式的類,和普通類一樣也可以宣告屬性,方法及構造。列舉中宣告的每乙個變數代表乙個例...