using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _011 { //枚舉為值類型,不是引用類型 enum en_um { 畢畢, 男人, a = 1, b = ...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _011
{
//枚舉為值類型,不是引用類型
enum en_um
{
畢畢,
男人,
a = 1,
b = 1, //最後一個的逗號可以不寫。成員的值可以設置成一樣的,但是成員不行
}; //這個分號可以不加
class Program
{
//用輸出結果來驗證枚舉的特性
static void Main(string[] args)
{
Console.WriteLine(en_um.畢畢);//畢畢
Console.WriteLine(en_um.男人);//男人
Console.WriteLine(en_um.a);//男人
Console.WriteLine(en_um.b);//男人
Console.WriteLine(Convert.ToInt32(en_um.畢畢));//0
Console.WriteLine(Convert.ToInt32(en_um.男人));//1 //在枚舉內每行數據都代表一個整數,累加的
Console.WriteLine(Convert.ToInt32(en_um.a));//1
Console.WriteLine(Convert.ToInt32(en_um.b));//1
//這樣就懂了,為什麼後三個都是輸出的是男人,因為他們三個代表的整數值是一樣的(我個人理解)
#region 這是判斷確定的枚舉成員是否等於確定字元串
string str = en_um.畢畢.ToString();//因為枚舉是值類型,string是引用類型,先來個封裝
Console.WriteLine(str);//畢畢
if (str == "畢畢")
{
Console.WriteLine("枚舉中有畢畢這個成員");//輸出的是這個
}
else
Console.WriteLine("枚舉中沒有畢畢這個成員");
#endregion
#region 判斷輸入的字元串是否存在於枚舉內
while (true)
{
Console.WriteLine("請輸入:");
string str1 = Console.ReadLine();
try
{
en_um nn = (en_um)(Enum.Parse(typeof(en_um), str1));
Console.WriteLine("輸入的字元串是枚舉成員");
}
catch
{
Console.WriteLine("輸入的字元串不是枚舉成員");
Console.WriteLine("是否還有繼續判斷,YES and NO");
go: string str2 = Console.ReadLine();
if (str2 != "NO")
{
if (str2 != "YES")
{
Console.WriteLine("輸入不對!重新輸入");
goto go;
}
continue;//寫不寫起不到作用
}
else
return;
}
}
#endregion
Console.Read();
}
}
}