枚举类型与int类型和string类型之间的转换
枚举类型和int类型:
声明枚举类型:
public enum QQState
{
OnLine,
OffLine,
Leave,
QMe,
Busy //最后一个有没有“,”都行
}
枚举类型到int类型:
QQState state=QQState.Leave;
int num1=(int)state; //num1=2
int类型到枚举类型:
int num2=1;
QQState state=(QQState)num2; //state=QQState.OffLine
若num2=6,即int类型的值超出了枚举默认的值,则转换成枚举后依然是6:
int num2=6;
QQState state=(QQState)num2; //Console.WriteLine(state); 输出:6
枚举类型与string类型:
枚举类型到string类型(任何类型都可以转换成string类型):
QQState state=QQState.Leave;
string str=state.ToString();
string类型到枚举类型:
string str="1";
QQState state=(QQState)Enum.Parse(typeof(QQState),str);
Console.WriteLine(state); //输出:OffLine
如果string类型的值超出了枚举默认的值,则转换成枚举后依然是10:
string str="10";
QQState state=(QQState)Enum.Parse(typeof(QQState),str);
Console.WriteLine(state); //输出:10
如果:
string str="10abc";
QQState state=(QQState)Enum.Parse(typeof(QQState),str);
Console.WriteLine(state); //失败,会发生异常
注解:
Enum.Parse(要转换成的枚举的类型,待转字符串)
枚举类型和int类型:
声明枚举类型:
public enum QQState
{
OnLine,
OffLine,
Leave,
QMe,
Busy //最后一个有没有“,”都行
}
枚举类型到int类型:
QQState state=QQState.Leave;
int num1=(int)state; //num1=2
int类型到枚举类型:
int num2=1;
QQState state=(QQState)num2; //state=QQState.OffLine
若num2=6,即int类型的值超出了枚举默认的值,则转换成枚举后依然是6:
int num2=6;
QQState state=(QQState)num2; //Console.WriteLine(state); 输出:6
枚举类型与string类型:
枚举类型到string类型(任何类型都可以转换成string类型):
QQState state=QQState.Leave;
string str=state.ToString();
string类型到枚举类型:
string str="1";
QQState state=(QQState)Enum.Parse(typeof(QQState),str);
Console.WriteLine(state); //输出:OffLine
如果string类型的值超出了枚举默认的值,则转换成枚举后依然是10:
string str="10";
QQState state=(QQState)Enum.Parse(typeof(QQState),str);
Console.WriteLine(state); //输出:10
如果:
string str="10abc";
QQState state=(QQState)Enum.Parse(typeof(QQState),str);
Console.WriteLine(state); //失败,会发生异常
注解:
Enum.Parse(要转换成的枚举的类型,待转字符串)