C#(C Sharp)学习笔记_Enum枚举类型【十三】

什么是枚举类型

  1. 枚举类型(Enum) 是由基础整型数值类型的一组命名常量定义的值类型。
  2. 枚举包含自己的值,但不能继承或传递继承。

语法

// enum enum_name
// enum_name variable = enum_name.enum_value// 定义一个枚举类型——例如:
enum enum_name
{value_1,value_2,value_3,value_4
}
enum enum_name {value_1, value_2, value_3, value_4}
  1. enum表示声明为枚举类型,Drink为枚举名,花括号内为枚举值
  2. 枚举不能定义在方法内。
  3. 枚举名用于指定枚举的类型名称,在方法中可以被当中类型来使用。
  4. 若有多个枚举值,则用逗号来分隔开来。

接收和输出枚举值

  1. 枚举类型是由基础整型数值类型的一组命名常量定义的值类型。
  2. 枚举类型一旦被定义,则无法修改枚举值,因为里面的值为常量。
  3. 前面已经说过如何定义,所以我们直接来实例:
using System;
namespace Enum_Project
{public class Program{//定义一个枚举类型enum Drink {MilkTea, CocaCola, BlackCoffee, MangoJuice}public static void Main(string[] args){// 接收值Drink client = Drink.CocaCola;// 输出值Console.WriteLine(client);}}
}

>>> CocaCola

关联数值转换

  1. 一般来讲,我们只能通过枚举的基本值来获取内容,但其实每个值都有一个对于的数值,就和String类型的index索引一样。
  2. 比如我们定义一个枚举类型enum a {我, 是, 帅, 哥},其中“我”对应的就是数值0,“哥”对应的是数值3。
  3. 但要注意的是,我们无法直接用和索引一样的方法来获取枚举值,我们需要通过数值的显示转换才可以。

对于任何枚举类型,枚举类型与其基础整型类型之间存在显式转换。 如果将枚举值转换为其基础类型,则结果为枚举成员的关联整数值。

  1. 话不多说,我们直接用实例来观察:
using System;
namespace Enum_Project
{public class Program{//定义一个枚举类型enum Drink {MilkTea, CocaCola, BlackCoffee, MangoJuice}public static void Main(string[] args){// 显示转换并输出值Console.WriteLine((Drink)2);   // 输出数值“2”对应的值Console.WriteLine((int)Drink.MangoJuice);  // 输出值对应的数值}}
}
>>> BlackCoffee
>>> 3
  1. 可以发现,当我们转化为对于的数值2时,输出的就是第三个枚举值。

Switch实际应用

  1. 枚举类型用在Switch语句内,在合适不过了,因为枚举类型是定值,值为常量。
using System;namespace Enum_Project
{public class Program{enum Drink {MilkTea, CocaCola, BlackCoffee, MangoJuice}public static void Main(string[] args){// Drink client = Drink.CocaCola;// Console.WriteLine((int)Drink.MangoJuice); Drink Client = Drink.CocaCola;switch (Client){case Drink.MilkTea:Console.WriteLine("您点了一杯奶茶");break;case Drink.CocaCola:Console.WriteLine("您点了一瓶可口可乐");break;case Drink.BlackCoffee:Console.WriteLine("您点了一杯黑咖啡");break;case Drink.MangoJuice:Console.WriteLine("您点了一杯芒果汁");break;}}}
}
>>> 您点了一瓶可口可乐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/793462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB源码-第30期】基于matlab的内边界边缘检测算法。

操作环境: MATLAB 2022a 1、算法描述 在计算机视觉领域,图像分割(segmentation)指的是将数字图像细分为多个图像子区域(像素的集合)(也被称作超像素)的过程。图像分割的目的是简化…

查找算法第1篇

查找,又称搜索,检索。 查找运算的主要操作是关键字的比较, 通常把查找过程中的平均比较次数(也称为平均查找长度) 作为衡量一个查找算法效率优劣的标准。 平均查找长度(Average Search. Length ASL) 的计算公式为 A S L ∑ i 1 n P n C i…

mysql常见故障

目录 1. 连接问题 2. 数据库无法启动 3. 数据库崩溃 4. 慢查询 5. 主从同步问题 6. 硬件故障 7. 日志问题 8. 其他常见问题 注意事项 1. ERROR 1045 (28000): Access denied for user userhost (using password: YES) 2. ERROR 2002 (HY000): Cant connect to local…

【DevOps】使用Filebeat收集华为云cce containerd日志

目录 1、背景2、containerd日志路径3、收集日志1、背景 将 Docker 换成 containerd 作为 Kubernetes (K8s) 集群中的容器运行时有以下几个好处: 性能提升: containerd 相较于 Docker,其设计更为精简,专注于容器的生命周期管理,没有Docker包含的其他额外服务如API服务器…

突破编程_C++_网络编程(TCPIP 四层模型(概述))

1 TCP/IP概述 1.1 TCP/IP的定义与起源 TCP/IP 协议,全称为 Transmission Control Protocol/Internet Protocol,中文名为传输控制协议/因特网互联协议,又名网络通讯协议。这是 Internet 最基本的协议,也是 Internet 国际互联网络…

【云原生篇】K8S之DaemonSet 详解

Kubernetes 的 DaemonSet 是一种特殊的工作负载控制器,它确保所有(或某些特定的)节点上都运行一个 Pod 的副本。当有新节点加入集群时,DaemonSet 会自动在新节点上添加相应的 Pod,当节点从集群中移除时,这些…

PWM模块的中断

在PWM模块中使用中断的主要目的是为了实现定时中断功能。PWM(脉宽调制)是一种通过调节信号的脉冲宽度来控制输出电压或电流的技术,在嵌入式系统中广泛应用于控制电机、LED亮度调节等领域。而在某些应用场景下,需要在PWM周期内定时…

sentinel与nacos集成

前言 sentinel的规则可以通过编码方式定义,也可以通过配置方式定义。sentinel-dashboard提供了界面维护功能,但是配置是存储在内存中的。因此需要进行持久化。 Sentinel自身就支持了多种不同的数据源来持久化规则配置,目前包括以下几种方式…

Swing中的FlowLayout/WrapLayout在打横排列时候如何做到置顶对齐

前言 最近在开发swing客户端时候碰到一个棘手的问题: Swing中的FlowLayout/WrapLayout在打横排列时候如何做到置顶对齐如果是vue或者react,一搜百度什么都出来了,swing的话,嗯。。。资料有点少而且大部分是stack overflow上面的…

Docker环境安装Postgresql数据库Posrgresql 15.6

宿主机是ubuntu 22.04版本 ubuntu宿主机上安装docker,参见官方文档https://docs.docker.com/engine/install/ubuntu/, docker-ce是社区版 docker-ee是企业版 1、检查Docker是否安装 rootODS1SPGOFSDEV:~# docker Command docker not found, but can be installed …

51单片机学习笔记12 SPI接口 使用1302时钟

51单片机学习笔记12 SPI接口 使用1302时钟 一、DS1302简介1. 功能特性2. 涓流充电3. 接口介绍时钟数据和控制线:电源线:备用电池连接: 二、寄存器介绍1. 控制寄存器2. 时间寄存器3. 日历/时钟寄存器 三、BCD码介绍四、DS1302时序1. 读时序2. …

大数据实验三-HBase编程实践

目录 一.实验内容 二.实验目的 三.实验过程截图及说明 1、安装HBase 2、配置伪分布式模式: 3、使用hbase的shell命令来操作表: 4、使用hbase提供的javaAPI来编程实现类似操作: 5、实验总结及心得体会…

如何降低AI功耗? —— 超低功耗的仿生硬件

一、背景 仿生硬件(Bionic Hardware)这一术语通常指的是受自然界的生物系统启发而设计制造的电子或机械硬件设备,它们在功能、结构、材料、能源效率等方面模仿生物体的特性,以实现更高效、智能、自适应或环境友好的性能。在人工智…

unity之 “Allow ‘unsafe‘ code“ 在哪里。

导入unity中的代码,出现如下错误,该如何解决? Unsafe code may only appear if compiling with /unsafe. Enable "Allow unsafe code" in Player Settings to fix this error 解决这个问题,只需要设置就可以。 设置的地…

达梦体系结构:数据库文件

达梦体系结构:数据库文件 存储结构表空间与数据文件配置参数文件控制文件其他数据库文件 达梦数据库由数据库和实例构成: 数据库是指磁盘上存放的数据库文件的集合,包括参数文件、控制文件、数据文件、日志文件等。实例是指一组运行的数据库…

创意绘图画画小程序:融合白板黑板功能,开启绘画新纪元

创意绘图画画小程序:融合白板黑板功能,开启绘画新纪元 在数字化时代的浪潮下,艺术创作正逐渐摆脱传统形式的束缚,以更加多元、便捷的方式走进人们的生活。其中,创意绘图画画小程序以其独特的白板画、黑板画功能&#…

了解next.js框架特点,以及总结Next.js 常用的api和用法

Next.js 是一个流行的 React 框架,它提供了很多开箱即用的功能,如服务器渲染、静态导出、代码拆分等,让开发者可以更轻松地构建 React 应用。下面是对 Next.js 的深度解析,以及附带的代码实例。 1.Next.js 框架特点 1. 服务器渲染(Server-side Rendering,SSR) Next.j…

FANUC机器人仿真软件ROBOGUIDE通过备份文件创建工作单元的方法介绍

FANUC机器人仿真软件ROBOGUIDE通过备份文件创建工作单元的方法介绍 如下图所示,首先要确定你的机器人控制器的软件版本,具体可以在示教器上查看,如下图所示, 如下图所示,该机器人的控制器版本为V8.30P, 按照正确步骤对机器人进行备份操作,具体的流程可参考以下链接中的内…

代码随想录算法训练营第30天| 332.重新安排行程*、 51. N皇后*、 37. 解数独*

332.重新安排行程* 力扣题目链接 代码 示例代码 class Solution { private: // unordered_map<出发机场, map<到达机场, 航班次数>> targets unordered_map<string, map<string, int>> targets; bool backtracking(int ticketNum, vector<strin…

k8s 部署 canal 集群,RocketMQ 模式

k8s 部署 canal 集群&#xff0c;RocketMQ 模式 k8s 部署 canal 集群&#xff0c;RocketMQ 模式前提MySQLRocketMQ制作 canal-admin、canal-server 镜像 部署 zookeeper部署 canal-admin部署 canal-server测试 k8s 部署 canal 集群&#xff0c;RocketMQ 模式 前提 MySQL 开启…