iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C# 枚举的使用简介
  • 886
分享到

C# 枚举的使用简介

2024-04-02 19:04:59 886人浏览 泡泡鱼
摘要

目录为什么使用枚举?枚举有哪些用法?1、简单枚举2、标志枚举3、枚举使用的一些建议枚举这个名词大家都听过,很多小伙伴也使用过, 那么枚举在开发中能做什么,使用它后能给程序代码带来什么

枚举这个名词大家都听过,很多小伙伴也使用过,

那么枚举在开发中能做什么,使用它后能给程序代码带来什么改变,为什么用枚举。

各位看官且坐下,听我一一道来。

为什么使用枚举?

1、枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值。

2、枚举使代码更易于维护,有助于确保给变量指定合法的、期望的值。

3、枚举使代码更易输入和读取。

枚举有哪些用法?

1、简单枚举

2、标志枚举

1、简单枚举

  • 枚举使用enum关键字来声明,与类同级。枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用public和internal。
  • 枚举是值类型,隐式继承自System.Enum,不能手动修改。System.Enum本身是引用类型,继承自System.ValueType。
  • 枚举都是隐式密封的,不允许作为基类派生子类。
  • 枚举类型的枚举成员均为静态,且默认为Int32类型。
  • 每个枚举成员均具有相关联的常数值。此值的类型就是枚举的底层数据类型。每个枚举成员的常数值必须在该枚举的底层数据类型的范围之内。如果没有明确指定底层数据类型则默认的数据类型是int类型。
  • 枚举成员不能相同,但枚举的值可以相同。
  • 枚举最后一个成员的逗号和大括号后面的分号可以省略

  C#提供类一个类来方便操作枚举,下面给出这个类的常用方法:

C#枚举常用方法

方法 名称
CompareTo 将此实例与指定对象进行比较并返回一个对二者的相对值的指示
Equals 指示此实例是否等于指定的对象
FORMat 根据指定格式将指定枚举类型的指定值转换为其等效的字符串表示形式
GetName 在指定枚举中检索具有指定值的常数的名称
GetNames 检索指定枚举中常数名称的数组
GetNames 检索指定枚举中常数名称的数组
GetTypeCode 返回此实例的基础 TypeCode
GetUnderlyingType 返回指定枚举的基础类型
GetValues 索指定枚举中常数值的数组
HasFlag 确定当前实例中是否设置了一个或多个位域
IsDefined 返回指定枚举中是否存在具有指定值的常数的指示
Parse

将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。 一个参数指定该操作是否不区分大小写

TryParse

将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。 用于指示转换是否成功的返回值

如果要显示指定枚举的底层数据类型很简单,只需在声明枚举的时候加个冒号,后面紧跟要指定的数据类型(可指定类型有:byte、sbyte、short、ushort、int、uint、long、ulong)。

显式设置枚举的成员常量值,默认是从0开始,逐个递增的。但是以下例子却设置成了1,2,3,0。而且成员值可以一样的。

如下示例:由枚举值获取枚举名称与由枚举名称获取枚举值


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace enumApplication
{
 class Program
 {
 static void Main(string[] args)
 {
  //输出方式一:
  Console.WriteLine("我是四大名著之一的:" + Enum.GetName(typeof(Man), 1)); //西游记(是哪个名著由值获取)

  //输出方式二:
  string[] array1 = Enum.GetNames(typeof(Man));
  Console.WriteLine("我是四大名著之一的:" + array1[2]); //红楼梦(是哪个名著由值获取)

  //输出方式三:
  Array array2 = Enum.GetValues(typeof(Man));
  Console.WriteLine("我是四大名著之一的:" + array2.GetValue(3)); //三国演义(是哪个名著由值获取)

  //输出方式四:
  Type t = Enum.GetUnderlyingType(typeof(Man));
  Console.WriteLine("我输出的是值类型:"+t); //输出 Int32

  //输出方式五:由值获取内容
  int i = 0;
  string Name = Enum.Parse(typeof(Man), i.ToString()).ToString(); //此时 Name="水浒传"
  Console.WriteLine("我是四大名著之一的:" + Name);

  //输出方式六:由值获取内容
  string Name2 = "红楼梦";
  int j = Convert.ToInt32(Enum.Parse(typeof(Man), Name2)); //此时 j=2
  Console.WriteLine("我是《红楼梦》对应的值序号:"+j);

  Console.ReadKey();
 }
 enum Man:int //四大名著枚举
 {
  西游记 = 1,
  红楼梦 = 2,
  三国演义 = 3,
  水浒传 = 0
 }
 }
}

2、标志枚举

标志枚举要在顶部加[System.Flags]特性进行声明。而且枚举支持组合运算。

这种位运算是非常有用的,在sql语句里也支持位运算。也就是说,把一个枚举运算后的结果存入数据库之后,还能够按照你的要求读取出来。比如:

将一个"高帅"存如数据库的值存入数据库,那么存入去的就是整型5。


select * from Table where Column & 1 = 1  //Column 是列名

select * from Table1 where Column  | 1 = Column 

如下demo:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace enumApplication
{
 class Program
 {
 static void Main(string[] args)
 {
  var man = People.高 | People.帅; //赋值为101 计算方法001或上100,结果是101
  Console.WriteLine("高和帅的枚举值和为:"+(int)man);
  if ((man & People.高) == People.高) //101 man 
  {     //001 高 逐位相与,
  Console.WriteLine("此人:高"); //001 如果结果是高,就可以反推出man包含 高
  }
  else
  {
  Console.WriteLine("此人:矮");
  }
  Console.ReadKey();
 }

 [System.Flags]
 public enum People:int 
 {
  高 = 1, //001
  富 = 2, //010
  帅 = 4, //100
 }
 }
}

3、枚举使用的一些建议

  • 作为参数、返回值、变量等类型可以使枚举,尽量使用枚举(要注意考虑分类的稳定性)
  • 大多数情况下都可以使用int类型枚举,下列情况除外。
  • 枚举可能被大量频繁的使用,这时为了节约空间可以使用小于int类型的枚举。
  • 标志枚举,且标志多于32个。 

枚举用好了还是蛮方便的,大家不妨去试试。

以上就是C# 枚举的使用简介的详细内容,更多关于C# 枚举的资料请关注编程网其它相关文章!

--结束END--

本文标题: C# 枚举的使用简介

本文链接: https://www.lsjlt.com/news/121600.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C# 枚举的使用简介
    目录为什么使用枚举?枚举有哪些用法?1、简单枚举2、标志枚举3、枚举使用的一些建议枚举这个名词大家都听过,很多小伙伴也使用过, 那么枚举在开发中能做什么,使用它后能给程序代码带来什么...
    99+
    2024-04-02
  • C#枚举和枚举成员怎么使用
    这篇文章主要讲解了“C#枚举和枚举成员怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举和枚举成员怎么使用”吧!C#枚举类型是一种的值类型,它用于声明一组命名的常数。(1)C#枚...
    99+
    2023-06-17
  • 【javaSE】 枚举与枚举的使用
    文章目录 🎄枚举的背景及定义⚾枚举特性总结: 🌲枚举的使用🚩switch语句🚩常用方法📌示例一Ὄ...
    99+
    2023-09-20
    java 开发语言 枚举 源码 反射
  • C# 枚举如何使用
    这篇文章主要介绍“C# 枚举如何使用”,在日常操作中,相信很多人在C# 枚举如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C# 枚举如何使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!为什么使用...
    99+
    2023-06-14
  • C#中的枚举类型(Enum)介绍
    枚举(Enum)定义 enum关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方...
    99+
    2024-04-02
  • C++中的枚举如何使用
    这篇文章主要介绍了C++中的枚举如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++中的枚举如何使用文章都会有所收获,下面我们一起来看看吧。一、枚举是什么枚举(enumeration)类型用于存放用户指...
    99+
    2023-07-05
  • C#IEnumerator枚举器的具体使用
    1、对象只要一个类型实现了IEnumerable接口就能遍历2、IEnumerator是枚举器,一个接口类,实现MoveNext->Current->Reset3、yie...
    99+
    2024-04-02
  • C#的枚举与位枚举怎么定义
    这篇文章主要介绍了C#的枚举与位枚举怎么定义的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#的枚举与位枚举怎么定义文章都会有所收获,下面我们一起来看看吧。一、枚举的概念C# 枚举(Enum), 枚举类型是用于...
    99+
    2023-06-27
  • C语言的枚举如何使用
    这篇文章主要介绍“C语言的枚举如何使用”,在日常操作中,相信很多人在C语言的枚举如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言的枚举如何使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!概述...
    99+
    2023-06-30
  • 解读C++中枚举(enum)的使用
    目录前言一、枚举是什么二、使用步骤1.作用域2.隐式类型转换3.显式指定枚举值类型4.指定枚举值的值4.整形显式转换成枚举总结前言 对于开发C++来说,枚举是一个几乎必然用到的功能。...
    99+
    2023-03-06
    C++枚举使用 C++枚举 enum C++枚举
  • C++中enum枚举如何使用
    这篇文章将为大家详细讲解有关C++中enum枚举如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C++ enum枚举格式:enum < 枚举类型名> {< 枚举表&g...
    99+
    2023-06-17
  • C#枚举类型怎么使用
    本篇内容介绍了“C#枚举类型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#枚举,枚举是一种值类型,由许多名字的常量(也叫枚举表)...
    99+
    2023-06-17
  • C#中的枚举类型怎么使用
    在C#中,枚举类型用于定义一组命名的整数常量。以下是枚举类型的基本用法示例: // 定义一个枚举类型 public enum Day...
    99+
    2024-04-03
    C#
  • C#枚举的高级应用
    文章开头先给大家出一道面试题: 在设计某小型项目的数据库(假设用的是 MySQL)时,如果给用户表(User)添加一个字段(Roles)用来存储用户的角色,你会给这个字段设置什么类型...
    99+
    2024-04-02
  • C# 枚举类型的声明和使用
    目录前言相关介绍一、枚举声明二、声明位置三、枚举使用总结前言 学习记录下枚举的声明和使用,枚举可用来规范开发 文章中代码的项目名为Project1,C#类名为Class1 相关介...
    99+
    2024-04-02
  • c++枚举类型enum怎么使用
    在C++中,枚举类型(enum)用于定义一组具有离散值的常量。它可以用来提高代码的可读性和可维护性。以下是使用枚举类型的基本语法:`...
    99+
    2023-10-10
    c++
  • C语言简明清晰讲解枚举
    目录概述简单使用入门判断自定义数值一种不严格的写法概述 一个类型,值只能是一堆值中的一个。 比如星期几,只会是星期一到星期天。 用数值表示的话就是0到6,但是0到6不太好理解。 而枚...
    99+
    2024-04-02
  • C++11中强类型枚举的使用
    目录1.C/C++98中的枚举的缺陷2.强类型枚举的使用1.C/C++98中的枚举的缺陷 枚举在C语言中是狠古老的类型,它分为匿名枚举和具名枚举,如果是匿名枚举,那么它的用法只有一种...
    99+
    2023-02-02
    C++11 强类型枚举
  • SpringBootEntity中枚举类型详细使用介绍
    目录简介方案对比枚举用法示例建表EntityEnumControllerServiceMapper测试1.正常操作2.前端传空字符串3.前端传null简介方案对比 本处列举表示类型或...
    99+
    2022-11-13
    SpringBoot Entity SpringBoot Entity枚举
  • C#枚举类型的应用
    这篇文章主要讲解了“C#枚举类型的应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的应用”吧!C#枚举类型应用是怎么样的呢?首先我们来看看几个问题:◆C#枚举类型与基础类型的转...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作