擴充套件型別 列舉型別

2021-10-01 11:36:51 字數 696 閱讀 9089

擴充套件型別:型別別名、列舉、介面、類。

在型別約束位置,會產生重複**,可以使用型別別名解決該問題

邏輯含義和真實的值產生了混淆,會導致修改真實的值的時候,產生大量的修改

字面量型別不會進入到編譯結果,比如我們想迴圈便利它的值,那麼就不行。

所以需要使用列舉

enum gender

gender.male

gender.female

列舉欄位的值只能是字串或者數字數字列舉的值,會自動自增。不指定初始值,那麼從 0 開始。

enum level 

// 數字列舉編譯後的結果跟字串不太一樣,以上面的為例

// 編譯後

盡量不要在乙個列舉中,即出現數字,又出現字串

使用列舉的時候,盡量使用列舉的名稱

類似於 react 原始碼中,型別的判斷,通過位運算,給予許可權

enum permission 

// 組合許可權:let p = permission.read | permission.write

// 判斷是否擁有某個許可權: let flag = p & permission.read

// 刪除某個許可權: p = p ^ permission.read

C 列舉型別Enumerable及其擴充套件

重要的資料型別 列舉型別是程式設計裡重要的一種資料型別,了解其本質和擴充套件型別的使用方法,將有助於解決程式設計中遇到的資料處理問題。ienumerable介面 實現了ienumerable介面的集合表明該集合能夠提供乙個enumerator 列舉器 物件,支援當前的遍歷集合。ienumerable...

強型別列舉以及C 11對原有列舉型別的擴充套件

非強型別作用域,允許隱式轉換為整型,占用儲存空間及符號性不確定,都是列舉類的缺點。針對這些缺點,新標準c 11引入了一種新的列舉型別,即 列舉類 又稱 強型別列舉 語法 在enum後加上關鍵字class enum class enumtype 優勢 強作用域,強型別列舉成員的名稱不會被輸出到其父作用...

使用擴充套件方法實現列舉型別與數值型別的相互轉換

簡單的說,擴充套件方法可以為某個型別t的所有例項都擴充套件出n個方法,並且t可以是值型別。為型別t擴充套件方法的步驟 1.定義乙個靜態類 2.往類中新增靜態方法,其第乙個引數為this t anyname,後面再是實際的方法引數 為int擴充套件方法add示例 view code namespace...