前面我所介紹的全都是值類型 ,寫這麼多了,我總結以下什麼叫值類型 。簡單的說,該類型的變數直接儲存所包含的值。這裡我們與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:
對於程式碼中出現的強制類型轉換我會在後面的 隱式轉換與顯示轉換 具體寫出,現在就不做介紹了。
結構(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中文網(m.sbmmt.com)!