namespace 常量_枚举_结构
{
//将枚举声明到命名空间的下面,类的上面。
//美剧就是一个变量类型,只是他声明,赋值,使用的方式与那些普通的不一样
//定义了一个枚举
public enum Gender
{
男,
女
}
public enum QQState
{
在线, 离线, 隐身, 忙碌
}
class Program
{
static void Main(string[] args)
{
//const 类型 赋值
//const int num = 20;// 常量不能够重新赋值
//什么时候用变量,什么时候有常量
// 折扣
//枚举
//[public] enmu 枚举名 []里的可写可不写
//{ -----public访问修饰符
//值1, ------枚举名要符合Pascal命名规范
//值2,
//值3,
// ,,,,
//}不能声明在主函数里面。作用:规范开发
//QQState state1=QQState.忙碌;
//int n = (int)state1;
//Console.WriteLine(n);
//Console.WriteLine((int)QQState.在线);
//Console.WriteLine((int)QQState.离线);
//Console.WriteLine((int)QQState.隐身);
//Console.WriteLine((int)QQState.忙碌);
//Console.ReadKey();
// int a=10;
// Gender gender = Gender.男;//gender 的值是Gender点出来的
// QQState qq = QQState.离线;
//枚举类型和int类型是兼容的,可以进行强制类型转换或者隐式类型转换
//#region 将枚举类型转换成字符串类型
//QQState state = QQState.离线;
//string a = state.ToString();
//Console.WriteLine(a);
//Console.ReadKey();
//#endregion
//#region 将int类型装换成枚举类型
//int b = 6;
//QQState State = (QQState)b;
//Console.WriteLine(State);
//Console.ReadKey();
//#endregion
//#region 将枚举类型转换成int类型
//int c = (int)QQState.离线;
//Console.WriteLine(c);
//Console.ReadKey();
//#endregion
#region 将字符串类型装换成枚举类型
//调用Parse()方法的目的就是为了让他帮助我们将一个字符串转换成对应的枚举类型
//string s = "2";
//QQState sta =(QQState)(Enum.Parse(typeof(QQState), s));
//Console.WriteLine(sta);
//Console.ReadKey();
#endregion
//练习 用户选择一个在线状态,提示用户
Console.WriteLine("请选择一个状态:1-在线 2-离线 3-离线 4-隐身");
string input=Console.ReadLine();
//现在知道有几个选项,要进行选择,用switch
switch (input)//"1"的类型要与input保持一致,input为字符类型
{
case "1": QQState s1=(QQState)Enum.Parse(typeof(QQState), input);
Console.WriteLine("你的QQ状态是{0}",input);
break;
case "2": QQState s2 = (QQState)Enum.Parse(typeof(QQState),input);
Console.WriteLine("你的QQ状态是{0}",input);
break;
case "3": QQState s3 = (QQState)Enum.Parse(typeof(QQState), input);
Console.WriteLine("你的QQ状态是{0}", input);
break;
default: Console.WriteLine("你妹的,好好看选项");
break;
}
Console.ReadKey();
}
}
}