欢迎您成为我的读者,希望这篇文章能给你一些帮助。
前言
今天咱们一起学习下枚举。
在日常的业务编码过程中,由于对某些业务或状态进行区分,就使用到了C#中的枚举概念。
枚举和之前学习的类或结构一样,是由程序员定义的类型。枚举是值类型,可直接存储数据;枚举只有一种类型成员,命名的整数值常量。
/// <summary>
/// 车子分类
/// </summary>
enum CarCategory
{
Bike,
Car,
Train
}
枚举是由关键字enum来定义的,每个枚举类型都有一个底层整数类型默认为Int。也就是说枚举中的值在存储时,其实存储的是整形数据(Int)。
比如上面的例子,Bike其实存储的是0,Car是1,Train是2。也可以直接通过CarCatgory[index]来取对应的枚举值。
具体代码如下所示:
class Program
{
static void Main(string[] args)
{
CarCategory entity = CarCategory.Bike;
Console.WriteLine(entity);
Console.WriteLine((int)entity);
Console.ReadKey();
}
}
枚举的特性
设置底层类型和显示值
可以把冒号和类型名放在枚举名之后,这样就可以使用int以外的整数类型(任何类型)。
/// <summary>
/// 车子分类
/// </summary>
enum CarCategory:byte
{
Bike,
Car,
Train
}
这里需要注意的是,成员常量的值可以是底层类型的任何值。也可以使用重复的值,但是在日常编码过程中尽量不适用重复值。
/// <summary>
/// 车子分类
/// </summary>
enum CarCategory:byte
{
Bike=0x40,
Car=0x10,
Train=0x10
}
上面的代码是显示的设置值,如果不设置默认为隐式设置。同时可以可以显示地赋值给任何成员常量,如果不初始化一个成员常量,编译器隐式地给它赋一个值。
枚举只有单一的成员类型:声明的成员常量。
- 不能对成员使用修饰符。它们都隐式地具有和枚举相同的可访问性。
- 由于成员是常量,即使在没有该枚举类型的变量时它们也可以访问。
寄语
人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。
原创不易,给个关注。
我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发 谢谢。
很高兴能和您成为朋友。