enum:枚举类型

简介: enum:枚举类型

定义

枚举类型是一种值类型,定义好的值会存放到中。


枚举类型在定义时使用 enum 关键字表示,枚举类型的定义与类成员的定义是一样的,或者直接定义在命名空间中。


注意

不能直接将枚举类型定义到方法中!!!


基础语法

定义枚举类型的变量的语法形式如下。

访问修饰符  enum  变量名 : 数据类型
{
  值l,
  值2,
}


  • 访问修饰符:与类成员的访问修饰符一样,省略访问修饰符也是代表使用 private 修饰符的。
  • 数据类型:指枚举中值的数据类型。只能是整数类型,包括 byteshortintlong 等。
  • 值1、值2、……:在枚举类型中显示的值。但实际上每个值都被自动赋予了一个整数类型值,并且值是递增加1 的,默认是从 0 开始的,也就是值1 的值是 0值2 的值是 1


实践用法

如果不需要系统自动为枚举值指定值,也可以直接为其赋一个整数值。

每个没有指定值的枚举值,它的初始值都是上一个枚举类型的值加1

通常设置的枚举值都是不同的,其整数值也是不同的。


示例展示

基本示例:

class EnumTest
{
  public enum Title : int
  {
    助教,
    讲师,
    副教授,
    教授
  }
}
class Program
{
  static void Main(string[] args)
  {
    Console.WriteLine(EnumTest.Title.助教 + ":" + (int)EnumTest.Title.助教);
    Console.WriteLine(EnumTest.Title.讲师 + ":" + (int)EnumTest.Title.讲师);
    Console.WriteLine(EnumTest.Title.副教授 + ":" + (int)EnumTest.Title.副教授);
    Console.WriteLine(EnumTest.Title.教授 + ":" + (int)EnumTest.Title.教授);
  }
}


输出

助教:0 讲师:1 副教授:2 教授:3


接下来尝试一下设置初始值:

class EnumTest
{
  public enum Title : int
  {
    助教=1,
    讲师,
    副教授=4,
    教授
  }
}


输出

助教:1 讲师:2 副教授:4 教授:5


C# 的枚举值是可以设置成相同的初始值的,这点要注意!我们测试一下:

class EnumTest
{
  public enum Title : int
  {
    助教=1,
    讲师,
    副教授=2,
    教授
  }
}


输出

助教:1 讲师:2 讲师:2 教授:3


实用技巧

在写 TypeScript 的时候,枚举类型中的字段不会限制为整数类型,可以是字符串bool等类型,如果想要枚举值中是字符串类型的,我们可以用如下的写法做:

public enum MqttTopicType
{
  msg_sys_up,
  msg_sys_down,
  msg_vcom_up,
  msg_vcom_down
}
var topicType = MqttTopicType.msg_sys_up.ToString(); 

这样得到的 topicType 变量就是形如 "msg_sys_up" 这样的字符串了。

Iric
+关注
目录
打赏
0
0
0
0
12
分享
相关文章
|
10月前
|
C enum(枚举)
C enum(枚举)
71 0
|
5月前
|
C#
C# 枚举(Enum)
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。
85 9
C enum(枚举)详解
在C语言中,`enum`(枚举类型)允许用户定义包含命名整数常量的数据类型,提高了代码的可读性和可维护性。通过关键字`enum`定义枚举,如`enum Color {RED, GREEN, BLUE}`。枚举值默认从0开始递增,也可自定义。枚举类型实际上是整型的别名,可用于简化代码并限制变量的具体取值范围。
297 15
[C++] enum枚举类型用法
[C++] enum枚举类型用法
139 0
c enum(枚举)
c enum(枚举)
177 1
|
9月前
|
C++一分钟之-C++中的枚举类型(enum class)
【6月更文挑战第25天】C++的`enum class`(强类型枚举)在C++11中引入,增强了枚举的作用域和类型安全,减少命名冲突。它要求使用全名(如`Color::Green`)访问枚举成员,并能显式指定底层类型。常见问题包括默认值非0、隐式转换和范围溢出,解决办法是明确赋值、显式转换和选择合适底层类型。高效技巧包括用于状态机、作为函数参数、创建别名和迭代。掌握这些能提升代码质量。
313 0
|
10月前
|
C++程序中的枚举类型
C++程序中的枚举类型
87 1
|
10月前
|
使用枚举类型
使用枚举类型
72 0
C++ “美中不足” --->强枚举类型
C++ “美中不足” --->强枚举类型