一、枚举的理论知识
(1)定义枚举的关键字和其在程序中的位置
enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方便地访问它。但是,还可以将枚举嵌套在类或结构中。
(2)枚举的作用
A、限制用户不能随意赋值,只能定义枚举时列举的值中选择
B、不需要死记每一个值是什么,只需选择相应的值
(3)枚举的定义格式以及其默认值
默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。例如,下面的枚举,Sat 是 0,Sun 是 1,Mon 是 2 等.
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
又例如,定义性别常量
enum gender{男,女}
即知道枚举的定义是 (关键字enum 自己定义的枚举类型名称 {值1,值2,值3,….值n})
(4)枚举默认值的改变
如下面的示例所示枚举数可用初始值来重写默认值。
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
(5)枚举数据类型的转换
从 enum 类型到整型的转换需要用显式类型转换来完成。例如,下面的语句使用强制转换(从 enum 转换为 int)将枚举数 Sun 赋值给一个 int 类型的变量。
int x = (int)Days.Sun;
二、枚举在程序中
//枚举值的输出
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 枚举
{
enum geder
{
男,
女
}
class Program
{
static void Main(string[] args)
{
geder sex = geder.男;
Console.WriteLine(sex);
Console.ReadKey();
}
}
}
//枚举定义值得默认值得的输出
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 枚举
{
enum geder
{
男,
女
}
class Program
{
static void Main(string[] args)
{
//注意:定义枚举时,值不能是int类型,枚举类型的变量都可以强制转换成一个int类型,枚举的值在定义时是有一个默认编号的,编号从0开始,下面的就是这个例子
geder sex = geder.男;
Console.WriteLine((int)sex);
Console.ReadKey();
}
}
}
三、字符串转换为枚举
固定的公式:(自己定义的枚举类型名称)(Enum.Parse(typeof(自己定义的枚举类型名称),“待转换的字符串”))
在程序中的运用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 把字符串转换成枚举类型
{
class Program
{
enum gender
{
男,
女
}
static void Main(string[] args)
{
try
{
gender sex;
Console.WriteLine("请输入你的性别");
string s = Console.ReadLine();
sex = (gender)(Enum.Parse(typeof(gender), s));
Console.WriteLine("你输入的性别为:" + sex);
}
catch
{
Console.WriteLine("你输入的性别有误!");
}
Console.ReadKey();
}
}
}
枚举在swich中
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 枚举在swich中
{
class Program
{ enum gender
{
男,
女
}
static void Main(string[] args)
{
gender sex = gender.男;
switch (sex)
{
case gender.男:
Console.WriteLine("男性");
break;
case gender.女:
Console.WriteLine("女性");
break;
}
Console.ReadKey();
}
}
}
|