看範例學C#-08 enum列舉型別

  • 14823
  • 0
  • C#
  • 2011-10-05

看範例學C#-08 enum列舉型別

enum是一種用來列舉型別的關鍵字

使用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的資料型別

以下為程式碼及註解


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Enum_ex
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            cboNum.Items.Add("0");//集合索引值0的值為0
            cboNum.Items.Add("1");//集合索引值1的值為1
            cboNum.SelectedIndex = 1;//設定 預設索引值為1
        }
        public enum Sex : short
        {
            Female = 0,//enum每行以,結尾
            Male = 1,
        };
        private void btnShow_Click(object sender, EventArgs e)
        {
            short Num = 0;
            if (cboNum.Text != "")
            {
                Num = short.Parse(cboNum.Text);//將選取文字轉為short型別
            }
            switch (Num)
            {
                case (short)Sex.Male://值為1
                    MessageBox.Show("男生");
                    break;//離開swith
                case (short)Sex.Female://值為0
                    MessageBox.Show("女生");
                    break;//離開swith
                default:
                    MessageBox.Show("數值不在範圍內");//非男非女 才會執行到這邊 下拉選單只有 0 1 可以選,所以這個基本上不可能發生
                    break;//離開swith
            }
        }
    }
}

ex08.rar


如有錯誤 歡迎指正