第一种类型转换:将枚举类型强转为int类型
using System;
namespace 类型转换
{
public enum QQState
{
OnLine,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
QQState state = QQState.OnLine;
int n = (int)state;
Console.WriteLine(n);
Console.WriteLine((int)QQState.OffLine);
Console.WriteLine((int)QQState.Leave);
Console.WriteLine((int)QQState.Busy);
Console.WriteLine((int)QQState.QMe);
Console.ReadKey();
}
}
}
第二种类型转换:将int类型强转为枚举类型
using System;
namespace 类型转换
{
public enum QQState
{
OnLine,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
int n1 = 0;
QQState state = (QQState)n1;
Console.WriteLine(state);
Console.ReadKey();
}
}
}
如果把n1改成8,此时注意结果:
第三种类型转换:所有的类型都能转换成字符串类型,如(int、double、decimal等)
using System;
namespace 类型转换
{
class Program
{
static void Main(string[] args)
{
int n1 = 10;
//double n1 = 3.14;
//decimal n1 = 5000m;
string s = n1.ToString();
Console.WriteLine(s);
Console.ReadKey();
}
}
}
在这里特别讲下:将枚举类型转换成字符串类型
using System;
namespace 类型转换
{
public enum QQState
{
OnLine,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
QQState state = QQState.OnLine;
String s = state.ToString();
Console.WriteLine(s);
Console.ReadKey();
}
}
}
第四种类型转换:字符串也可以转换成int、double、decimal等类型
在这里特别讲下:将字符串转换成枚举类型
using System;
namespace 类型转换
{
public enum QQState
{
OnLine,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
string s = "0";
//将s转换成枚举类型
//调用Parse()方法的目的就是为了让它帮助我们将一个字符串转换成对应的枚举类型
QQState state = (QQState)Enum.Parse(typeof(QQState), s);
Console.WriteLine(state);
Console.ReadKey();
}
}
}
如果把s改成"8"或"OnLine"或"OffLine"或"ABCD",此时注意结果:
我们可以将一个枚举类型的变量跟int类型和string类型相互转换。
枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法相互转换。
当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来。
枚举同样也可以跟string类型相互转换,如果将枚举类型转换成string类型,则直接调用ToString()。
如果将字符串转换成枚举类型则需要下面这样一行代码:
(要转换的枚举类型)Enum.Parse(typeof("要转换的枚举类型),“要转换的字符串”);
如果要转换的字符串是数字,则就算枚举中没有,也会不会抛异常。
如果要转换的字符串是文本,如果枚举中没有,则会抛出异常。