我们可以将枚举类型的变量与int类型与string类型进行转换
枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转化的语法进行相互转换
当转一个枚举中没有的值的时候,不会抛异常,而是将数字直接显示出来;
枚举类型同样也可以和string类型相互转换,如果将枚举类型转转换成string类型,直接调用Tostring();
如果将字符串转换成枚举类型则需要一下代码:
(需要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型),“要转换的字符串”);
如果要转换的字符串是数字,就算枚举中没有,也不会抛异常;
如果转换的字符串是文本,如果枚举中没有,则会抛出异常;
1 namespace 枚举与int和string之间的转换 2 { 3 public enum QQState 4 { 5 onLine, 6 offLine, 7 busy, 8 Leave, 9 QMe 10 } 11 class Program 12 { 13 static void Main(string[] args) 14 { 15 #region 枚举类型转int 16 //枚举类型与int类型是兼容的,可以进行强制类型转换 17 QQState a = QQState.busy; 18 int b = (int)a; 19 Console.WriteLine(b); 20 21 #endregion 22 #region int类型转枚举类型 23 //int a1 = 3; 24 //QQState b1 = (QQState)a1; 25 //Console.WriteLine(b1); 26 #endregion 27 28 //任何类型都可以转化成string类型,调用ToString() 29 #region 枚举类型转string 30 31 QQState a2 = QQState.offLine; 32 string b2 = a2.ToString(); 33 Console.WriteLine(b2); 34 #endregion 35 #region string类型转枚举类型 36 string a3 = "offLine"; 37 QQState b3 = (QQState)Enum.Parse(typeof(QQState), a3); 38 Console.WriteLine(b3); 39 #endregion 40 Console.ReadKey(); 41 } 42 } 43 }