前言:本博文主要對Enum知識,作一些補充,主要是類型轉換這塊。更多知識,請查看本人另一篇博文:C# 枚舉(Enum)精講
一、Enum介紹
Enum爲枚舉提供基類,其基礎類型可以是除 Char 外的任何整型。如果沒有顯式聲明基礎類型,則使用 Int32。編程語言通常提供語法來聲明由一組已命名的常數和它們的值組成的枚舉。
注意:枚舉類型的基類型是除 Char 外的任何整型,所以枚舉類型的值是整型值。
二、聲明一個Enum類型
// 聲明一個枚舉,表示性別,裏面有兩個值
// Pascal命名規則
enum Sex
{
male, // 男
Female, // 女
// 最後一個, 可有可無
}
三、Enum,Int,String相互轉換
1、Enum轉String或String[]
- 利用Object.ToString()方法。
Sex sex1 = Sex.male;
string strSex = sex1.ToString();
Console.WriteLine(strSex);
// 判斷是否轉換成功
Console.WriteLine(strSex is String);
- 利用Enum的靜態方法GetName與GetNames。
string strSex = Enum.GetName(typeof(Sex),Sex.male);
Console.WriteLine(strSex);
Console.WriteLine(strSex is String);
string[] strSex = Enum.GetNames(typeof(Sex));
Console.WriteLine(strSex);
Console.WriteLine(strSex is String[]);
2、String轉Enum
- 利用Enum的靜態方法Parse。
string str = "Female";
Sex sex = (Sex)Enum.Parse(typeof(Sex), str);
Console.WriteLine(sex);
Console.WriteLine(sex is Enum);
3、Enum轉Int
- 因爲枚舉的基類型是除 Char 外的整型,所以可以進行強制轉換。
int num = (int)Sex.Female;
Console.WriteLine(num);
Console.WriteLine(num is Int32);
4、Int轉Enum
- 可以強制轉換將整型轉換成枚舉類型。
Sex sex = (Sex)1;
Console.WriteLine(sex);
Console.WriteLine(sex is Enum);
- 利用Enum的靜態方法ToObject。
Sex sex = (Sex)Enum.ToObject(typeof(Sex), 0);
Console.WriteLine(sex);
Console.WriteLine(sex is Enum);
四、判斷某個整型是否定義在枚舉中
Enum.IsDefined
Console.WriteLine(Enum.IsDefined(typeof(Sex), 0));
Console.WriteLine(Enum.IsDefined(typeof(Sex), "Female"));