Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型。如果没有显式声明基础类型,则使用Int32。编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。
注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值。
public enum Gender
{
男,
女
}
public enum Week
{
星期一,
星期二,
星期三,
星期四=4,
星期五,
星期六,
星期日
}
Enum–>String
(1)利用Object.ToString()方法:
如Console.WriteLine(myDay.ToString());的值是"星期二"字符串;
判断是否转换成功
Console.WriteLine(myDay is String);
(2)利用Enum的静态方法GetName与GetNames:
public static string GetName(Type enumType,Object value)
public static string[] GetNames(Type enumType)
String–>Enum
(1)利用Enum的静态方法Parse:
public static Object Parse(Type enumType,string value)
Enum–>Int
(1)因为枚举的基类型是除 Char 外的整型,所以可以进行强制转换。
例如:(int)Colors.Red, (byte)Colors.Green
Int–>Enum
(1)可以强制转换将整型转换成枚举类型。
例如:
//Week week = Week.星期四;
//Console.WriteLine((int)week);
(2)利用Enum的静态方法ToObject。
public static Object ToObject(Type enumType,int value)
int myint = 5;
Console.WriteLine((Week)myint); // 星期五
添加类
class Class1
{
static void Main(string[] args)
{
Gender gender = Gender.女;
Console.WriteLine(gender);
//Week week = Week.星期一;
//Console.WriteLine(week);
//Week week = Week.星期四;
//Console.WriteLine((int)week); // 转换为索引
// 将数字 转换为枚举
int myint = 5;
Console.WriteLine((Week)myint); // 星期五
// 将枚举转换为字符串
Week myDay = Week.星期二;
Console.WriteLine(myDay); // 枚举值 星期二
Console.WriteLine(myDay.ToString()); // 字符串值 星期二
// 将字符串 转换为枚举
string str = "星期一";
Console.WriteLine((Week)Enum.Parse(typeof(Week),str));
Console.ReadLine();
}
判断某个整型是否定义在枚举中
Enum.IsDefined
Console.WriteLine(Enum.IsDefined(typeof(Gender), 0));
Console.WriteLine(Enum.IsDefined(typeof(Gender), "星期一"));
//true