C#复杂变量类型——枚举(Enum)
除了简单的变量类型外,C# 还提供了三个较复杂的变量:枚举、结构和数组。
C# 枚举(Enum):
枚举是⼀组命名整型常量。枚举类型是使⽤ enum 关键字声明的。
C# 枚举是值类型。换句话说,枚举包含⾃⼰的值,且不能继承或传递继承。
枚举类型是⼀种值类型,定义好的值会存放到栈中。
枚举类型在定义时使⽤ enum 关键字表⽰,枚举类型的定义与类成员的定义是⼀样的,或者直接定义在命名空间中。
注意:不能直接将枚举类型定义到⽅法中。
声明枚举的⼀般语法:
writeline输出数值变量访问修饰符enum变量名:数据类型
{
值1,
值2,
...
值n
}
其中:
<1>、访问修饰符
与类成员的访问修饰符⼀样,省略访问修饰符也是代表使⽤ private 修饰符的。
例如:
public enum test
{
男=0,
⼥=1
}
<2>、数据类型
枚举使⽤⼀个基本类型来存储。枚举类型可取的每个值都存储为该基本类型的⼀个值,默认情况下该类型为 int。
当然,也可以指定其他基本类型。
枚举的基本类型可以是:byte、sbyte、short、ushort、int、uint、long 和 ulong
例如:
enum location:byte
{
north =1,
south =2,
east =3,
west =4
}
<3>、值1,值2,…
枚举列表中的每个符号代表⼀个整数值,⼀个⽐它前⾯的符号⼤的整数值。默认情况下,第⼀个枚举符号的值是 0。如果不需要系统⾃动为枚举值指定值,也可以直接为其赋⼀个整数值。
例如:
{
Mon=71,
tue=61,
Wed=51,
thu=41,
Fri=51,
Sat=61,
Sun=71
}
实例⼀:创建类 EnumTest,在该类中定义⼀个枚举类型存放教师职称(助教、讲师、副教授、教授)。在 Main ⽅法中分别打印出每个枚举值对应的字节值。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace project_05_枚举
{
public enum Title :byte//直接定义在命名空间中
{
助教,
讲师,
副教授,
教授
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0}的默认编号是{1}", Title.助教,(byte)Title.助教);
Console.WriteLine("{0}的默认编号是{1}", Title.讲师,(byte)Title.讲师);
Console.WriteLine("{0}的默认编号是{1}", Title.副教授,(byte)Title.副教授);
Console.WriteLine("{0}的默认编号是{1}", Title.教授,(byte)Title.教授);
}
}
}
结果是:
助教的默认编号是0
讲师的默认编号是1
副教授的默认编号是2
教授的默认编号是3
请按任意键继续...
从上⾯的执⾏效果可以看出,由于没有给枚举值设置初始的整数值,初始的整数值是从 0 开始的,并且依次递增 1。
实例⼆:将助教的值设置为 1,将副教授的值设置为 4。
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace project_05_枚举
{
public enum Title :byte//直接定义在命名空间中
{
助教=1,
讲师,
副教授=4,
教授
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0}的编号是{1}", Title.助教,(byte)Title.助教);
Console.WriteLine("{0}的编号是{1}", Title.讲师,(byte)Title.讲师);
Console.WriteLine("{0}的编号是{1}", Title.副教授,(byte)Title.副教授);
Console.WriteLine("{0}的编号是{1}", Title.教授,(byte)Title.教授);
}
}
}
结果是:
助教的编号是1
讲师的编号是2
副教授的编号是4
教授的编号是5
请按任意键继续...
从上⾯的执⾏效果可以看出,当助教的值为 1 时,讲师的值为 2,⽽由于副教授的值被设置为 4,则教授的值为 5。因此,每个枚举值的整数值都是前⼀个枚举值的整数值加 1。
over.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论