iT邦幫忙

DAY 8
5

看範例學C#系列 第 8

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

  • 分享至 

  • xImage
  •  

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
            }
        }
    }
}

全系列文章列表


上一篇
看範例學C#-07 Windows Form 表單的啟動順序
下一篇
看範例學C#-09 struct結構
系列文
看範例學C#30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
lugood
iT邦新手 4 級 ‧ 2012-10-23 09:03:29

找了好多網路上的enum說明 還是搞不懂enum到底要應用在甚麼地方
看了您的例子終於了解了 謝謝

我要留言

立即登入留言