广告
返回顶部
首页 > 资讯 > 精选 >C#枚举类型的概念及应用
  • 373
分享到

C#枚举类型的概念及应用

2023-06-17 23:06:00 373人浏览 薄情痞子
摘要

这篇文章主要讲解了“C#枚举类型的概念及应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的概念及应用”吧!C#枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一

这篇文章主要讲解了“C#枚举类型的概念及应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的概念及应用”吧!

C#枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。例如,假设您必须定义一个变量,该变量的值表示一周中的一天。该变量只能存储七个有意义的值。若要定义这些值,可以使用枚举类型。枚举类型是使用 enum 关键字声明的。

enum Days { Sunday, Monday, Tuesday,   Wednesday, Thursday, Friday, Saturday };  enum Months : byte { Jan, Feb, Mar, Apr,   May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

默认情况下,枚举中每个元素的基础类型是 int。可以使用冒号指定另一种整数值类型,如前面的示例所示。以下是使用枚举而不使用数值类型的好处:

明确为客户端代码指定哪些值是变量的有效值。

在 Visual Studio 中,IntelliSense 列出定义的值。

如果不为枚举数列表中的元素指定值,则它们的值将以 1 为增量自动递增。在前面的示例中,Days.Sunday 的值为 0,Days.Monday 的值为 1,依此类推。创建新的 Days 对象时,如果不显式为其赋值,则它将具有默认值 Days.Sunday (0)。创建枚举时,应选择最合理的默认值并赋给它一个零值。这便使得只要在创建枚举时未为其显式赋值,则所创建的全部枚举都将具有该默认值。

如果变量 meetingDay 的类型为 Days,则只能将 Days 定义的某个值赋给它(无需显式强制转换)。如果会议日期更改,可以将 Days 中的新值赋给 meetingDay:

Days meetingDay = Days.Monday;  //...  meetingDay = Days.Friday;

C#枚举类型说明:

可以将任意整数值赋给 meetingDay。例如,代码行 meetingDay = (Days) 42 不会产生错误。但也不应该这样做,因为默认约定的是枚举变量只容纳枚举定义的值之一。将任意值赋给枚举类型的变量很有可能会导致错误。

可以将任意值赋给枚举类型的枚举数列表中的元素,也可以使用计算值:

enum MachineState  {  PowerOff = 0,  Running = 5,  Sleeping = 10,  Hibernating = Sleeping + 5  }

C#枚举类型作为位标志

可以使用C#枚举类型定义位标志,从而使该C#枚举类型的实例可以存储枚举数列表中定义的值的任意组合。(当然,某些组合在您的程序代码中可能没有意义或不允许使用。)

创建位标志枚举的方法是应用 System..::.FlagsAttribute 属性并适当定义一些值,以便可以对这些值执行 AND、OR、NOT 和 XOR 按位运算。在位标志枚举中包含一个值为零(表示“未设置任何标志”)的命名常量。如果零值不表示“未设置任何标志”,则请不要为标志指定零值。

在下面的示例中,定义了 Days 枚举的另一个版本,即 Days2。Days2 具有 Flags 属性,且它的每个值都是 2 的若干次幂,指数依次递增。这样您就可以创建值为 Days2.Tuesday 和 Days2.Thursday 的 Days2 变量。

[Flags]  enum Days2  {  None = 0x0,  Sunday = 0x1,  Monday = 0x2,  Tuesday = 0x4,  Wednesday = 0x8,  Thursday = 0x10,  Friday = 0x20,  Saturday = 0x40  }  class MyClass  {  Days2 meetingDays = Days2.Tuesday | Days2.Thursday;  }

C#枚举类型的问题:若要在某个枚举上设置标志,请使用逻辑 OR 运算符,如下面的示例所示:

// Initialize with two flags using bitwise OR.  meetingDays = Days2.Tuesday | Days2.Thursday;  // Set an additional flag using bitwise OR.  meetingDays = meetingDays | Days2.Friday;  Console.WriteLine("Meeting days are {0}", meetingDays);  // Output: Meeting days are Tuesday, Thursday, Friday  // Remove a flag using bitwise XOR.  meetingDays = meetingDays ^ Days2.Tuesday;  Console.WriteLine("Meeting days are {0}", meetingDays);  // Output: Meeting days are Thursday, Friday

若要确定是否设置了特定标志,请使用逻辑 AND 运算,如下面的示例所示:

// Test value of flags using bitwise AND.  bool test = (meetingDays & Days2.Thursday) == Days2.Thursday;  Console.WriteLine("Thursday {0} a meeting day.",   test == true ? "is" : "is not");  // Output: Thursday is a meeting day.

有关使用System..::.FlagsAttribute 属性定义枚举类型时需要考虑的事项的更多信息,请参见System..::.Enum。

使用 System.Enum 方法发现和操作枚举值

所有枚举都是System..::.Enum 类型的实例。不能从System..::.Enum 派生新类,但可以使用它的方法发现有关枚举实例中的值的信息以及操作这些值。

string s = Enum.GetName(typeof(Days), 4);  Console.WriteLine(s);  Console.WriteLine("The values of the Days Enum are:");  foreach (int i in Enum.GetValues(typeof(Days)))  Console.WriteLine(i);  Console.WriteLine("The names of the Days Enum are:");  foreach (string str in Enum.GetNames(typeof(Days)))  Console.WriteLine(str);

感谢各位的阅读,以上就是“C#枚举类型的概念及应用”的内容了,经过本文的学习后,相信大家对C#枚举类型的概念及应用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C#枚举类型的概念及应用

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

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

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

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

下载Word文档
猜你喜欢
  • C#枚举类型的概念及应用
    这篇文章主要讲解了“C#枚举类型的概念及应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的概念及应用”吧!C#枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一...
    99+
    2023-06-17
  • C#枚举类型的应用
    这篇文章主要讲解了“C#枚举类型的应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的应用”吧!C#枚举类型应用是怎么样的呢?首先我们来看看几个问题:◆C#枚举类型与基础类型的转...
    99+
    2023-06-17
  • C#泛型类概念举例分析
    这篇文章主要讲解了“C#泛型类概念举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#泛型类概念举例分析”吧!C# 泛型类封装不是特定于具体数据类型的操作。泛型类最常用于集合,如链接列...
    99+
    2023-06-17
  • c语言枚举类型enum的用法及应用实例
    目录前言一、枚举的概念二、枚举的几种用法1.直接定义枚举值,然后给普通变量赋值。2.定义带名称的枚举三、定义枚举别名四、枚举有什么用,用在哪里?最后总结:前言 今天跟大家讲一下我在产...
    99+
    2022-11-12
  • C#枚举类型怎么用
    这篇文章主要为大家展示了“C#枚举类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#枚举类型怎么用”这篇文章吧。C#枚举类型使用的时候需要掌握的有哪些方面呢?首先我们来看看一个例子:p...
    99+
    2023-06-17
  • C#枚举类型的语法
    本篇内容主要讲解“C#枚举类型的语法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的语法”吧!C#枚举类型语法是什么呢?让我看看下面的讲解: usingSystem;&nb...
    99+
    2023-06-17
  • C#枚举类型怎么使用
    本篇内容介绍了“C#枚举类型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#枚举,枚举是一种值类型,由许多名字的常量(也叫枚举表)...
    99+
    2023-06-17
  • C# 枚举类型的声明和使用
    目录前言相关介绍一、枚举声明二、声明位置三、枚举使用总结前言 学习记录下枚举的声明和使用,枚举可用来规范开发 文章中代码的项目名为Project1,C#类名为Class1 相关介...
    99+
    2022-11-12
  • C++11中强类型枚举的使用
    目录1.C/C++98中的枚举的缺陷2.强类型枚举的使用1.C/C++98中的枚举的缺陷 枚举在C语言中是狠古老的类型,它分为匿名枚举和具名枚举,如果是匿名枚举,那么它的用法只有一种...
    99+
    2023-02-02
    C++11 强类型枚举
  • c++枚举类型enum怎么使用
    在C++中,枚举类型(enum)用于定义一组具有离散值的常量。它可以用来提高代码的可读性和可维护性。以下是使用枚举类型的基本语法:`...
    99+
    2023-10-10
    c++
  • C#枚举类型的基础知识
    这篇文章主要讲解了“C#枚举类型的基础知识”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的基础知识”吧!C#枚举示例:enum WeekDay  S...
    99+
    2023-06-18
  • C#枚举类型的基础讲解
    本篇内容主要讲解“C#枚举类型的基础讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的基础讲解”吧!对于C#枚举类型不仅可以提高程序的可读性,而且可以减少因底层值发生改变而导致的程...
    99+
    2023-06-18
  • C#枚举类型的实例分析
    本篇内容主要讲解“C#枚举类型的实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的实例分析”吧!C#枚举类型实例是你学习C#枚举类型的捷径,那让我们开始吧:public&nbs...
    99+
    2023-06-17
  • C#中的枚举类型(Enum)介绍
    枚举(Enum)定义 enum关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方...
    99+
    2022-11-13
  • C++的枚举类型怎么定义
    这篇文章主要介绍了C++的枚举类型怎么定义的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++的枚举类型怎么定义文章都会有所收获,下面我们一起来看看吧。C++枚举类型enum表示枚举,通常用于定义个新类型的字符...
    99+
    2023-06-27
  • c语言枚举类型enum怎么用
    本文小编为大家详细介绍“c语言枚举类型enum怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“c语言枚举类型enum怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、...
    99+
    2022-10-19
  • MySQL枚举与集合类型的应用
    本文主要给大家介绍MySQL枚举与集合类型的应用,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL枚举与集合类型的应用吧。1. 背景  *&n...
    99+
    2022-10-18
  • C# 枚举类型的声明和使用方法
    本篇内容主要讲解“C# 枚举类型的声明和使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C# 枚举类型的声明和使用方法”吧!目录前言相关介绍一、枚举声明二、声明位置三、枚举使用前言学习记录...
    99+
    2023-06-20
  • C#中的枚举类型怎么定义使用
    这篇文章主要介绍“C#中的枚举类型怎么定义使用”,在日常操作中,相信很多人在C#中的枚举类型怎么定义使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#中的枚举类型怎么定义使用”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-02
  • 枚举类型的定义和应用总结
    定义:如果一种变量只有几种可能的值,可以定义为枚举类型。所谓“枚举类型”是将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。 声明:声明枚举类型用enum开头,例如:复制代...
    99+
    2022-11-15
    枚举类型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作