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

C#學習日記11---數據類型 之 枚舉(enum)類型

編輯:C#入門知識

C#學習日記11---數據類型 之 枚舉(enum)類型


前面我所介紹的全都是值類型 ,寫這麼多了,我總結以下什麼叫值類型 。簡單的說,該類型的變量直接存儲所包含的值。這裡我們與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:

data-cke-saved-src=https://www.aspphp.online/bianchen/UploadFiles_4619/201701/2017012018074608.png

 

對於代碼中出現的 強制類型轉換 我會在後面的 隱式轉換與顯示轉換 中具體寫出,現在就不做介紹了。

 

結構(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)類型 則不同,枚舉類型的變量在某一時刻只能取枚舉列表中某一個元素的值,比如:前面我編寫的enum weekday 的程序中wek 在某一時刻只能表示一個值 ,它不能在同一時刻既表示 Sun 也表示 Mon ,

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

 

 

 

 

 

值類型就介紹完了,後面就是引用類型了會越來越難,更新相比會慢一點(有些地方得查閱資料), 感謝您的閱讀,您的評論與建義是我完善自我的動力,謝謝 ^_^

 

 

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