一、枚举的理论知识
(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) {2012-11-13 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(); } } } |
浙公网安备 33010602011771号