2014年5月28日 星期三

[C#] enum列舉型別

form: http://ithelp.ithome.com.tw/question/10074623


使用enum的好處,提高程式的可讀性
像本例 男生是Male,女生是Female,我們一看就知道
case (short)Sex.Male://值為1
MessageBox.Show("男生");
break;//離開swith
case (short)Sex.Female://值為0
MessageBox.Show("女生");
break;//離開swith

而如果是用數字表示,就會搞不清楚那個是男 那個是女
case 1://值為1
MessageBox.Show("男生");
break;//離開swith
case 0://值為0
MessageBox.Show("女生");
break;//離開swith

使用enum有以下幾點要注意:
enum不能於方法內宣告
資料型別必須是byte、sbyte、short、ushort、int、unit、long或ulong型別
預設的預料型別為int
若列舉項目沒有給定任何整數值,則預設第一個列舉值為0,第二個列舉值為1,
以此類推
float與double不可為enum的資料型別

以下為本例程式碼及註解
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Linq;  
  7. using System.Text;  
  8. using System.Windows.Forms;  
  9. namespace Enum_ex  
  10. {  
  11.     public partial class Form1 : Form  
  12.     {  
  13.         public Form1()  
  14.         {  
  15.             InitializeComponent();  
  16.             cboNum.Items.Add("0");//集合索引值0的值為0  
  17.             cboNum.Items.Add("1");//集合索引值1的值為1  
  18.             cboNum.SelectedIndex = 1;//設定 預設索引值為1  
  19.         }  
  20.         public enum Sex : short  
  21.         {  
  22.             Female = 0,//enum每行以,結尾  
  23.             Male = 1,  
  24.         };  
  25.         private void btnShow_Click(object sender, EventArgs e)  
  26.         {  
  27.             short Num = 0;  
  28.             if (cboNum.Text != "")  
  29.             {  
  30.                 Num = short.Parse(cboNum.Text);//將選取文字轉為short型別  
  31.             }  
  32.             switch (Num)  
  33.             {  
  34.                 case (short)Sex.Male://值為1  
  35.                     MessageBox.Show("男生");  
  36.                     break;//離開swith  
  37.                 case (short)Sex.Female://值為0  
  38.                     MessageBox.Show("女生");  
  39.                     break;//離開swith  
  40.                 default:  
  41.                     MessageBox.Show("數值不在範圍內");//非男非女 才會執行到這邊 下拉選單只有 0 1 可以選,所以這個基本上不可能發生  
  42.                     break;//離開swith  
  43.             }  
  44.         }  
  45.     }  
  46. }  









0 意見:

張貼留言

 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template