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" 这样的字符串了。

目录
相关文章
|
2月前
|
C语言
C enum(枚举)
C enum(枚举)
12 0
|
5月前
|
程序员 测试技术 C++
[C++] enum枚举类型用法
[C++] enum枚举类型用法
36 0
|
2月前
|
存储 编译器 C++
23枚举类型
23枚举类型
14 0
|
3月前
|
编译器 Linux C++
C++ “美中不足” --->强枚举类型
C++ “美中不足” --->强枚举类型
|
5月前
|
索引
06 # 枚举类型
06 # 枚举类型
37 0
|
8月前
枚举类型的一些事情
枚举类型的一些事情
枚举类型的一些事情
|
编译器
枚举类型详解
枚举类型详解
94 0
枚举类型详解
|
Java C语言 Spring
enum(枚举)
枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。
189 0
|
安全 C# 存储