首頁  >  文章  >  後端開發  >  C#學習日記11---資料型態 之 枚舉(enum)型別

C#學習日記11---資料型態 之 枚舉(enum)型別

黄舟
黄舟原創
2017-01-20 13:46:461094瀏覽

   前面我所介紹的全都是值類型 ,寫這麼多了,我總結以下什麼叫值類型 。簡單的說,該類型的變數直接儲存所包含的值。這裡我們與C語言中的字串相對比一下,char ch[6] = "HC666"; 老師說過這裡其實是用ch來引用「HC666」的位址,透過存取位址來存取資料。 string也是一樣,因此C#中的字串 String 就是引用型別,而不是值型別。 。而struct 類型卻不是這樣,透過直接賦值來改變變數儲存內容,因此它是值類型。

值類型 之 枚舉(enum)類型:

      枚舉(enum): 實際上是為一組在邏輯上密不可分的整數值提供便於記憶的符號。舉個例子來說吧,比如到了星期天了,我買了張電影票取看電影,座位號一看挺好---66號,按照號碼我找到了位置,很好的一個位置---第2排第5列,於是愉快的看完了電影。其實這個66號在我所在的放映室裡對映的就是  第2排第5列,這就叫一個枚舉。

聲明枚舉(enum)類型變數:

enum   变量名
                   {
                   标识符列表     
            } ;


注意:

    標識符列表中,元素與元素之間用,  ,一個比他前面符號大的整數值,預設情況下,第一個枚舉符號代表0,當然也可以修改:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace Test  
{  
    class Program  
    {  
        //定义 enum 类型 以0开始递增  
        enum weekday  
            {  
                Sun, Mon, tue, Wed, thu, Fri, Sat    //若要改变默认值只需  (Sun = 2, Mon, tue, Wed, thu, Fri, Sat)以2开始递增+1  
            };  
  
        static void Main(string[] args)  
        {  
            weekday wek;  
            Console.WriteLine("输入0~6一个数字: ");  
            int i = int.Parse(Console.ReadLine());  
  
            wek = (weekday)i;     //强制类型转换,将int类型转化为 weekday 类型  
  
            Console.WriteLine("{0} 是 {1}", i, wek);  
  
        }  
    }  
}

我輸入一個0:

C#學習日記11---資料型態 之 枚舉(enum)型別   對於程式碼中出現的強制類型轉換我會在後面的 隱式轉換與顯示轉換  具體寫出,現在就不做介紹了。

 

結構(struct)類型與枚舉(enum )類型的比較:

         我有個同學他總是Struct類型與enum類型傻分不清,有時候寫出這樣的程式碼來了:

enum  wek
{
     int   a,b,c;
   string  d,e,f;
}

 

 

   為了避免以上的錯誤,這裡我就說說它們之間的區別吧:在說struct類型的時候我已經提到了它裡面的資料類型可以是多個不同類型的,換句話說,Struct類型是由不同類型的資料組成的一組新類型,結構類型變數的值是由各個成員的值組合而成。例如:

  Struct   wek
{
      public  int   a  = 1;
     public  int   b = 2;
}

定一個變數  wek  w;   此時的w 既可以用來表示  a 的值是1 (w.a),也可以表示b 的值是2(w.b)

      不同,枚舉類型的變數在某一時刻只能取枚舉列表中某一個元素的值,例如:前面我寫的enum weekday 的程式中wek 在某一時刻只能表示一個值,它不能在同一時刻既表示Sun 也表示Mon ,

  wek = (weekday)2; 此時wek 只能表示Tue,不能表示其它的了。

 

以上就是C#學習日記11---資料類型 之 列舉(enum)類型的內容,更多相關內容請關注PHP中文網(www.php.cn)!

 

 

 

 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn