C#中Enum用法小结

enums枚举是值类型,数据直接存储在栈中,而不是使用引用和真实数据的隔离方式来存储。

(1)默认情况下,枚举中的第一个变量被赋值为0,其他的变量的值按定义的顺序来递增(0,12,3...),因此以下两个代码定义是等价的:

[csharp] view plaincopy

  1. enum TrafficLight
  2. {
  3. Green,
  4. Yellow,
  5. Red
  6. }

[csharp] view plaincopy

  1. enum TrafficLight
  2. {
  3. Green = 0,
  4. Yellow = 1,
  5. Red = 2
  6. }

(2)enum枚举类型的变量的名字不能相同,但是值可以相同,例如:

[csharp] view plaincopy

  1. enum TrafficLight
  2. {
  3. Green = 0,
  4. Yellow = 1,     // Duplicate value, OK
  5. Red = 1         // Duplicate value, OK
  6. }

(3)如果enum中的部分成员显式定义了值,而部分没有;那么没有定义值的成员还是会按照上一个成员的值来递增赋值,例如:

[csharp] view plaincopy

  1. enum LoopType
  2. {
  3. None,          // value is 0
  4. Daily,         // value is 1
  5. Weekly = 7,
  6. Monthly,       // value is 8
  7. Yeayly,        // value is 9
  8. DayGap = 15,
  9. WeekGap,       // value is 16
  10. MonthGap,      // value is 17
  11. YearGap        // value is 18
  12. }

(4)enum枚举成员可以用来作为位标志,同时支持位的操作(位与,位或等等),例如:

[csharp] view plaincopy

  1. enum CardDeckSettings : uint
  2. {
  3. SingleDeck = 0x01,      // Bit 0
  4. LargePictures = 0x02,   // Bit 1
  5. FancyNumbers = 0x04,    // Bit 2
  6. Animation = 0x08        // Bit 3
  7. }
时间: 2024-10-25 17:13:13

C#中Enum用法小结的相关文章

JAVA中this用法小结[转]

Java关键字this只能用于方法方法体内.当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this.因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static.final 使用总结”一文中给出了明确解释.并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this. package test; public class ThisTest { private i

JAVA中this用法小结

转载自:http://blog.csdn.net/fzfengzhi/article/details/2174406 我知道很多朋友都和我一样:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它,但是到底“this”该怎么用,却心中无数!很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不清楚.现在让大家看一个小例子,给你分享一下JAVA中“this”的用法! /** * @author fengzhi-neusoft * * 本示例为了说明this的三种用

【Java学习笔记之二十】final关键字在Java继承中的用法小结

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类   当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final

C++中const用法小结

const表示其所修饰的对象不可以被改变,例如常量,函数,指针等,下面总结一下常见的 几条const用法: 1 指针常量与常量指针:这两个概念很容易搞混淆,笔者每次用到这两个概念的时候都要重新查一下 文档才放心,查看定义与实例的时候,很容易理解二者的意义与区别,时间一长,概念又模糊了.这里 介绍一个简单的记法,这个方法<<Effective C++>>第三版中看到的:     常量指针,即指向常量的指针,故名思议,指针指向的对象是常量,可以改变指针本身的值,不可以 改变指针指向的对

关于expdp 中query用法小结

今天看到群里有人问到关于在使用expdp导出数据中使用query参数报错的解决方法,自己也出于好奇心瞎折腾了一把,现记录如下 1.第一次尝试的时候 [[email protected] ~]$ expdp scott/scott tables=emp1 dumpfile=emp1.dmp logfile=emp1.log query=emp1:"where rownum < 5"   Export: Release 11.2.0.4.0 - Production on 星期日 6

【Java学习笔记之十九】super在Java继承中的用法小结

1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量: 2)在一个构造函数中调用另外一个构造函数的时候应该用的是同一块内存空间,在默认的构造函数中先初始化变量,调用另一个的时候覆写已经初始化的变量的值: 3)整个调用的过程和递归调用函数有点类似,不断充气球,直到整个气球膨胀起来,不断的深层递进,遇到停止标记,逐层的跳出来. 写了段代码,解释我上面的叙述: 1 class JavanT

【Java学习笔记之二十一】抽象类在Java继承中的用法小结

一.抽象类的基本概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法.普通方法.static方法.常量和变量等内容.而抽象类是指在普通类的结构里面增加抽象方法的组成部分. 那么什么叫抽象方法呢?在所有的普通方法上面都会有一个“{}”,这个表示方法体,有方法体的方法一定可以被对象直接使用.而抽象方法,是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修饰. 而拥有抽象方法的类就是抽象类,抽象类要使用abstract关键字声明. 范例:定义一个抽

asp.net中Page.ClientScript.RegisterStartupScript用法小结(转)

//ASP.NET后台页面跳转 Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>if(confirm('保存成功!是否继续添加?')){location.href='ProductonAdd.aspx'}else{location.href='ProductonList.aspx'}</script>"); //后台弹出确定框 ClientScript.

Java中static、final用法小结(转)

一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变.其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中.这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值. 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的