1.枚举使用enum关键字来声明,与类同级。枚举可以和类并列也可以

写在类里面,不能写在方法里。

2.枚举是值类型,隐式继承自System.Enum,不能手动修改。

System.Enum本身是引用类型,继承自 System.ValueType。

3.·枚举本身一般不加访问修饰符,要加的话只能是internal

或public;

·枚举都是隐式密封的(sealed),不允许作为基类派生子类。

4.枚举里面的成员只能是默认公共的静态的(public、static),不能

有访问修饰符;

5.·每种枚举类型都有基础类型,该类型可以是任何整型, 枚举元素

的默认基础类型为 int。

·默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次

递增 1。

·枚举数可以具有重写默认值的初始值设定项。但是,强烈建议枚

举包含一个值为 0 的常量。

·枚举元素不可以重复,枚举元素的值可以重复。

·枚举数的名称中不能包含空白。

6.最后一个元素后的逗号可有可无。枚举最后的冒号可有可无。

7.基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型

到整型的转换需要用显式类型转换来完成。

详情看下面代码:

 namespace EnumTest01
{
class Program
{
static void Main(string[] args)
{
//3.-----------------------------------------------------------------------------------------------------
//***基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型到整型的转换需要用显式类型转换来完成。
int a = (int)Days1.Fri;
Console.WriteLine(a); //打印6
Console.WriteLine(Days1.Fri); //打印Fri Console.ReadKey();
} //4.-------------------------------------------------------------------------------------------------
//***枚举可以和类并列也可以写在类里面,不能写在方法里。
enum A : byte
{ }
} //1.--------------------------------------------------------------------------------------------- //***枚举本身一般不加访问修饰符,要加的话只能是internal或public.
enum Animal //此处可以加访问修饰符internal或者public。
{
dog = , //枚举里面的成员是默认公共的,不能有其他修饰符。
cat = ,
pig = ,
//pig = 0
} //***枚举都是隐式密封的,不允许作为基类派生子类。
//enum M : Animal { } //这里会报错,因为枚举不能作为基类去派生子类。 //***枚举里面的成员只能是默认公共的静态的,默认为Int32类型,不能有访问修饰符。 //2.--------------------------------------------------------------------------------------------- //***每种枚举类型都有基础类型,该类型可以是任何整型, 枚举元素的默认基础类型为 int.
//byte的位置可以写: byte、sbyte、short、ushort、int、uint、long、ulong。不写的话默认为int.
enum A : byte
{ } //***默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。例如:
enum Days1 { Sat, Sun, Mon, Tue, Wed, Thu, Fri };
//在 Days1 枚举中,Sat 为 0,Sun 为 1,Mon 为 2,依此类推。枚举数可以具有重写默认值的初始值设定项。例如:
enum Days2 { Sat = , Sun, Mon, Tue, Wed, Thu, Fri };
//在 Days2 枚举中,强制元素序列从 1 而不是 0 开始, Sat 为 1,Sun 为 2,Mon 为 3,依此类推。但是,强烈建议枚举包含一个值为 0 的常量。 //***枚举元素不可以重复,枚举元素的值可以重复。
enum Days3
{
Sat = ,
//Sat = 0, //此处会报错,以为已经定义了一个Sat. 枚举成员不能相同,但枚举的值可以相同。
Sun = ,
Mon = ,
Tue,
Wed,
Thu = ,
Fri, //最后一个元素后的逗号可有可无。
}; //枚举最后的这个冒号可有可无。
//在 Days3 枚举中, Tue的值是2,Wed的值是3,Fri的值是11。 //***枚举数的名称中不能包含空白。
}

C# 枚举类型 enum (一)的更多相关文章

  1. 【转】java枚举类型enum的使用

    原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...

  2. C# 中的枚举类型 enum (属于值类型)

    原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构. 声明枚举:声明时要声明所有可能的值. using System; using System.Collect ...

  3. 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)

    java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...

  4. 枚举类型enum详解——C语言

    enum enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶 ...

  5. 深入理解Java枚举类型(enum)

    https://blog.csdn.net/javazejian/article/details/71333103 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(en ...

  6. 人生苦短之Python枚举类型enum

    枚举类型enum是比较重要的一个数据类型,它是一种数据类型而不是数据结构,我们通常将一组常用的常数声明成枚举类型方便后续的使用.当一个变量有几种可能的取值的时候,我们将它定义为枚举类型.在Python ...

  7. 全面解读Java中的枚举类型enum的使用

    这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始sw ...

  8. Java基础之枚举类型Enum的使用

    Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ...

  9. 《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)

        新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...

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

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

随机推荐

  1. Python知识点:distutils常用子模块

    from distutils.core import setup, Extension, Commandfrom distutils.command.build import buildfrom di ...

  2. UML核心元素--边界

    定义:边界是无形的,是可大可小的,同时参与者.用例和边界又有着相生相克的性质.与其说边界是UML元素,还不如说它是一种分析方法. 1.需求是动态的过程:系统边界是无形的,看不到的,不好理解,倒不如说需 ...

  3. UML核心元素--用例

    定义:用例定义了一组用例实例,其中每个实例都是系统所执行的一些列操作,这些操作生成特定主角可以观测的值.一个完整的用例定义由参与者.前置条件.场景.后置条件构成. 1.理解用例:用例就是参与者希望通过 ...

  4. Python命令模块argparse学习笔记(四)

    默认参数 ArgumentParser.set_defaults(**kwargs) set_defaults()可以设置一些参数的默认值 >>> parser = argparse ...

  5. ansible的使用

    ansible主要分为单条命令和组命令(即配置后缀为名yml的文件,使用ansible-playbook执行)的使用,以下分别对两者进行说明.如不会安装ansible,请参考我的文章 centos7安 ...

  6. linux 安装 elasticsearch

    安装 Java 8 当你提前在使用 Elasticsearch,你开始寻找更好的 Java 性能和兼容性时,您可以选择安装 Oracle 的专有 Java (Oracle JDK 8). 将 Orac ...

  7. (转载)Windows无法安装到GPT分区形式磁盘解决办法

    之前使用的是windows7 + ubuntu18.04双系统,硬盘分区采用的是GPT格式.重装windows系统时,提示“windows无法安装到这个磁盘.选中的磁盘采用GPT分区形式”,导致安装失 ...

  8. Umbraco back office 中form显示不出来的问题

    问题纠结了好久,没找到什么原因,具体就是在back office中,form显示不出来.如下: 按下F12,在chrome 的developer tools中发现如下错误 找了半天不知道原因,后来看到 ...

  9. 【mybatis-SqlSession的方法总结】

    SqlSession 实例在 MyBatis 中是非常强大的一个类.SqlSession 实例中有所有执行语句的方法,提交或回滚事务,还有获取映射器实例. 在 SqlSession 类中有超过 20 ...

  10. Spark Checkpoint 概述

    有时候,Transformation 的 RDD 非常多或者具体 Transformation 产生的 RDD 本身计算特别复杂和耗时,此时我们必须考虑对计算结果数据进行持久化.与 persist 不 ...