除了简单的变量类型外,C# 还提供了三个较复杂的变量:枚举、结构和数组。
C# 枚举(Enum):
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。
C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。
枚举类型是一种值类型,定义好的值会存放到栈中。
枚举类型在定义时使用 enum 关键字表示,枚举类型的定义与类成员的定义是一样的,或者直接定义在命名空间中。
注意:不能直接将枚举类型定义到方法中。
声明枚举的一般语法:
访问修饰符 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。
如果不需要系统自动为枚举值指定值,也可以直接为其赋一个整数值。
例如:
enum Days
{
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;
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.
来源:CSDN
作者:usingSystemFF
链接:https://blog.csdn.net/qq_42007357/article/details/103734041