c#-枚举

ops/2025/2/7 18:45:37/
//可空类型:int? num 等价 Nullable<int> num
Nullable<int> a = null;
a = 99;
Console.WriteLine(a);//合并运算符?? : a有值的话,赋值给b
int b = a ?? 1;
Console.WriteLine(b);

枚举成员不能相同,但枚举的值可以相同

枚举

枚举可以继承byte、sbyte、short、ushort、 int、 uint、long 或 ulong,不指定默认是int

枚举值默认从0开始,也可以指定,也可以等于某个成员加上一个值

enum Days : long{Sun, Mon, Tue, Wed, Thu, Fri = 5, Sat = Sun + 1};

使用

得到K-V

//声明枚举变量
Days num = Days.Sun;//获取枚举K
string s = Days.Sun.ToString();//获取枚举V,必须跟枚举类型,不是int要强转
long x = (long)num;
Console.WriteLine(x);//根据 V 获取 K
int typeVal = 0;
string name = Enum.GetName(typeof(Days), typeVal);
Console.WriteLine(name);

获取枚举对象,typeof()获取该类型的对象

Parse方法:将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象

//根据 V 获取枚举对象
Days clazz = (Days)Enum.Parse(typeof(Days), "6");
Console.WriteLine(clazz);//根据 K 获取枚举对象
Days clazz2 = (Days)Enum.Parse(typeof(Days), "Mon");
Console.WriteLine(clazz2);int j = Convert.ToInt32(Enum.Parse(typeof(Days), "Sun"));
//默认第三个参数为false,当传true时忽略大小写
int k = Convert.ToInt32(Enum.Parse(typeof(Days), "Sun", true));

获取数组

//获取 K 数组
string[] tnames = Enum.GetNames(typeof(Days));//获取 V 数组
var values = Enum.GetValues(typeof(Days));


http://www.ppmy.cn/ops/156510.html

相关文章

深度剖析思科安全产品的特征以及技术特点

思科(Cisco)作为全球网络安全领域的领导者,其产品特征和技术趋势深刻反映了行业需求与技术演进的结合。以下从产品特征和技术趋势两方面进行深度解析: 一、思科网络安全产品的核心特征 威胁情报驱动的主动防御 思科的核心竞争力之一是其威胁情报团队 Talos,该团队通过分析…

【Elasticsearch】multi terms aggregation

相比普通的terms aggregation&#xff0c;multi terms aggregation有以下特别之处&#xff1a; 1.支持多字段聚合 • terms aggregation&#xff1a;只能对单个字段进行聚合&#xff0c;无法直接对多个字段同时进行聚合。 • multi terms aggregation&#xff1a;可以同时对…

【Elasticsearch】`auto_date_histogram`聚合功能详解

1.功能概述 auto_date_histogram是 Elasticsearch 提供的一种时间分桶聚合功能&#xff0c;它可以根据数据分布自动调整分桶的间隔&#xff0c;以生成指定数量的分桶。与传统的date_histogram不同&#xff0c;auto_date_histogram不需要用户手动指定时间间隔&#xff0c;而是根…

vue3-封装自定义 Hooks

在 Vue 3 中&#xff0c;setup 函数是 Composition API 的核心部分&#xff0c;它允许你使用响应式状态和其他 Composition API 功能。然而&#xff0c;就像在其他框架中的组件方法或生命周期钩子中一样&#xff0c;setup 函数内定义过多逻辑可能会使代码变得难以阅读和维护。为…

IDEA构建JavaWeb项目,并通过Tomcat成功运行

目录 一、Tomcat简介 二、Tomcat安装步骤 1.选择分支下载 2.点击下载zip安装包 3.解压到没有中文、空格和特殊字符的目录下 4.双击bin目录下的startup.bat脚本启动Tomcat 5.浏览器访问Tomcat 6.关闭Tomcat服务器 三、Tomcat目录介绍 四、WEB项目的标准结构 五、WEB…

1.5 Go切片使用

一、切片简介 切片是相同类型元素的可变长度的集合&#xff0c;通常表示[]type。同一个切片中的元素类型都是一个类型的。它看上去跟数组一样&#xff0c;但是没有长度 二、切片的组成 每一个切片由三个部分组成 底层数组的指针&#xff1a;指向切片实际存储数据的底层数组…

Android_P_Audio_系统(1) — Auido 系统简介

1 音频基础 1.1 声音的三要素 1. 音量&#xff08;Volume&#xff09; 也叫做响度&#xff08;Loudness&#xff09;&#xff0c;人耳对声音强弱的主观感觉就是响度&#xff0c;响度和声波振动的幅度有关。一般说来&#xff0c;声波振动幅度越大则响度也越大。当我们用较大的…

UE5 创建自定义工具上下文的方法

自定义工具管理类上下文 工具管理类&#xff1a;MyToolsManager&#xff0c;管理类依赖类&#xff1a;ContextQueriesAPI、ContextTransactionsAPI // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.…