1. 枚举的综合运用

  1. public enum Color { yellow, blue, green }
  2. class Program
  3. {
  4. static void Main(string[] args)
  5. {
  6. // 1. 正常使用枚举元素
  7. Console.WriteLine(Color.yellow); // 输出: yellow
  8. // 2. 通过定义变量使用枚举元素
  9. Color c1 = Color.blue;
  10. Console.WriteLine(c1); // 输出: blue
  11. // 3. 枚举的元素实际上是“Int”,而且依次编号(增量为1)
  12. Console.WriteLine(Convert.ToInt32(Color.green)); // 输出2
  13. // 4. Enum.Parse()方法,根据“字符串”获取对应的枚举元素
  14. Color c2 = (Color)Enum.Parse(typeof(Color), "yellow", true);
  15. if (c2 == Color.yellow)
  16. {
  17. Console.WriteLine("Yes");   // 输出: Yes
  18. }
  19. // 5. 根据“下标”获取对应的字符串
  20. string c3 = Enum.GetName(typeof(Color), 1);
  21. Console.WriteLine(c3); // 输出: blue
  22. // 6. 依次输出枚举元素(下标)
  23. foreach(int i in Enum.GetValues(typeof(Color)))
  24. {
  25. Console.WriteLine(i.ToString()); // 依次输出: 1, 2, 3
  26. Console.WriteLine(Enum.GetName(typeof(Color), i)); // 根据“下标”获取对应字符串,依次输出: yellow, blue, green
  27. }
  28. // 7.依次输出枚举值对应的字符串
  29. foreach (string c in Enum.GetNames(typeof(Color)))
  30. {
  31. Console.WriteLine(c); // 依次输出: yellow, blue, green
  32. }
  33. }
  34. }

2. 枚举的值

  • 枚举元素不是变量,而是常数。因为是常量,所以不能对枚举元素进行赋值。
  • 枚举元素作为常量,它们是有值的,值依次递增,增量为1。
  1. public enum Color { yellow, blue, green }
  2. 等同于:
  3. public enum Color { yellow = 0, blue = 1, green = 2 }
  1. public enum Color { yellow, blue = 100, green }
  2. 等同于:
  3. public enum Color { yellow, blue = 100, green = 101 }

3. Enum.Parse(enumType, value, ignoreCase)

根据给定“字符串”获取枚举的值,返回object(使用时需要强类型转换)。

  1. // enumType: 枚举的 Type
  2. // value: 包含要转换的值或名称的字符串
  3. // ignoreCase: 如果为 true,则忽略大小写;否则考虑大小写
  4. // 返回值: enumType 类型的对象,其值由 value 表示
  5. public static Object Parse (
  6. Type enumType,
  7. string value,
  8. bool ignoreCase
  9. )

C#:枚举的更多相关文章

  1. Swift enum(枚举)使用范例

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  2. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  3. Objective-C枚举的几种定义方式与使用

    假设我们需要表示网络连接状态,可以用下列枚举表示: enum CSConnectionState { CSConnectionStateDisconnected, CSConnectionStateC ...

  4. Help Hanzo (素数筛+区间枚举)

    Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000).     (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...

  5. 枚举:enum

    枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...

  6. .NET 基础一步步一幕幕[方法、结构、枚举]

    方法.结构.枚举 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值,写void 方法名:P ...

  7. Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件

    在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码: 首先看工具类代码: /// <su ...

  8. 用枚举enum替代int常量

    枚举的好处: 1. 类型安全性 2.使用方便性 public class EnumDemo { enum Color{ RED(3),BLUE(5),BLACK(8),YELLOW(13),GREEN ...

  9. c#编程基础之枚举

    枚举的意义就在于限制变量取值范围. 当可以确定的几种取值时才可以用. 如果输入一个字符串需要进行判断是否是我们需要的字符串时,则一般需要这样写: using System; using System. ...

  10. golang枚举类型 - iota用法拾遗

    在c#.java等高级语言中,经常会用到枚举类型来表示状态等.在golang中并没有枚举类型,如何实现枚举呢?首先从枚举的概念入手. 1.枚举类型定义 从百度百科查询解释如下:http://baike ...

随机推荐

  1. 将DataTable转换成CSV文件

    DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表.CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记 ...

  2. C++入门知识总结(1)

    1.有符号数和无符号数. 这个问题其实是一个很细的问题,我们还要把问题追溯到“位”,针对不同的“位”,那么能表示的最大数的范围不同.因为计算机存储数据都是以二进制的方式去存储的,即0和1,比如 110 ...

  3. 读谭浩强C语言数据结构有感(1)

    1.什么是数据结构? 数据结构,就是我们计算机内部的运算,编程语言的基础工作模式吧,个人总结的 = = !! 数据:说简单一点,就是计算机二进制机器码,然后通过一些复杂的操作,变为复杂的语言. 数据元 ...

  4. LeetCode刷题系列

    LeetCode 我们工作面试和提高自身数据结构和算法能力的时候往往需要刷刷题,我选择LeetCode是通过一个留学论坛了解的.专业,覆盖语种全面. 提前说说刷题的心得: 尽量手写代码,少使用IDE的 ...

  5. angular中的$q.defer()服务异步处理

    jquery和angular都有defer服务,我暂以angular为例谈谈我的理解,最后并附上jquery的阮一峰总结的defer. 以我目前项目的部分代码为例说明为什么要用deferred. fu ...

  6. JDBC连接MySQL数据库代码模板

    下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...

  7. 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)

    从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...

  8. SQL常见的系统存储过程

    1.sp_datebases 列出服务器上的所有数据库信息,包括数据库名称和数据库大小 例:exec sp_datebases 2.sp_helpdb 报告有关指定数据库或所有数据库的信息 例:exe ...

  9. .NET Core全新路线图(译)

    标签: .NETCore 翻译 承接张善友大大的.NET Core全新路线图,翻译了原文,水平有限,尽量一观. 原文地址<.NET Core Roadmap>,原作者Scott Hunte ...

  10. Java - NIO

    java.nio:NIO-2: NIO 面向流的IO体系一次只能处理一个或多个字节/字符,直至读取所有字节/符,且流中的数据不能前后移动.效率低,当数据源中没有数据时会阻塞线程.Java-4提供的新A ...