程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中枚舉類型的作用

C#中枚舉類型的作用

編輯:C#入門知識

C#編程語言作為一種功能強大的語言,對開發人員來說作用是非常大的。不過,其中有很多應用方式還需要我們去不斷的探討,不斷從中汲取經驗來達到熟練的程度。下面我們就先為大家詳細介紹一下有關C#枚舉類型的相關概念。

其主要作用就是一個約定:舉個常用的例子,你要表示星期1-7,你可以用int1-7,但是當你把它作為參數的時候,有時後你就給考慮傳入0,8的情況.而且用數字表示還需要相應的注釋和文檔.這個時候你定義個一個枚舉,名字就叫字面就叫Monday , Tuesday ,....就行,直觀,並且值可控.

定義枚舉類型中元素的值時,默認第一個元素的值是從0開始,後面依次加1

int型數據為32位有符號整型數據,並不區分正負

所以public enum Test

{ color1=-1 , color2 , color3 } 這樣的定義是正確的

1、枚舉enum的用途淺例

寫程序時,我們常常需要為某個對象關聯一組可選alternative屬性.例如,學生的成績分A,B,C,D等,天氣分sunny, cloudy, rainy等等。更常見的,打開一個文件可能有三種狀態:input, output和append. 典型做法是,對應定義3個常數,即:

  1. const int input = 1;
  2. const int output = 2;
  3. const int append = 3;

然後,調用以下函數:

  1. bool open_file(string file_name, int open_mode);

比如,

  1. open_file("Phenix_and_the_Crane", append);

這種做法比較簡單,但存在許多缺點,主要的一點就是無法限制傳遞給open_file函數的第2個參數的取值范圍,只要傳遞int類型的值都是合法的。(當然,這樣的情況下的應對措施就是在open_file函數內部判斷第二個參數的取值,只有在1,2,3范圍內才處理。)

使用枚舉能在一定程度上減輕這種尴尬(注1),它不但能實現類似於之前定義三個常量的功能,還能夠將這三個值組合起來成為獨一無二的組。例如:

  1. enum open_modes {input = 1, output, append};

以上定義了open_modes為C#枚舉類型enumeration type。每一個命名了的枚舉都是唯一的類型,是一個類型標示器type specifier。例如,我們可以重新寫一個open_file函數:

  1. bool open_file(string file_name, open_modes om);

在open_modes枚舉中,input, output, append稱為枚舉子enumerator, 它們限定了open_modes定義的對象的取值范圍。這個時候,調用open_file函數和之前的方法還是一模一樣:

  1. open_file("Phenix_and_the_Crane", append);

但是,如果傳遞給open_file的第二個參數不是open_modes枚舉類型值的話(注1),那麼編譯器就會識別出錯誤;就算該參數取值等價於input, output, append中的某個,
也一樣會出錯哦!例如:

  1. open_file("Phenix_and_the_Crane", 1);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved