(1)为什么要使用Enum?

♥ enums枚举是值类型,数据直接存储在栈中,而不是使用引用和真实数据的隔离方式来存储。
enum student{a,b,c,d,e},其中enum代表student为枚举类型 enum枚举属于值类型 不属于引用类型。
也就是说,a=0,b=1,c=2,d=3,e=4,
当student.a使用该枚举时,可用一个int类型的变量来接收此值
也就是int num = student.a ; 相当于 int num = 1; 有些时候,我们需要向数据库里存放一些代表着标示意义的值,但是存字符串会增加数据库的负载能力
于是.net便发明了这种枚举类型,用于更好的在编程过程中记忆每一个标示数字所代表的意义
比如:
男和女
我们想存放在数据库中这两个值,直接存放“男”,“女”这两个char或者string值也可以
但是最优的方式便是存放int类型的值 如0代表男,1代表女
那么我们就创建一个枚举类
enum gender{boy,girl}
在取值的时候就用gender.boy来代表男 gender.girl代表女
这时存放数据库中的值就是0和1了
(2)默认情况下,枚举中的第一个变量被赋值为0,其他的变量的值按定义的顺序来递增(0,12,3...),因此以下两个代码定义是等价的:
     enum TrafficLight
{
Green,
Yellow,
Red
}
  1. enum TrafficLight
  2. {
  3. Green = 0,
  4. Yellow = 1,
  5. Red = 2
  6. }
(3)enum枚举类型的变量的名字不能相同,但是值可以相同,例如:
 num TrafficLight
{
Green = ,
Yellow = , // Duplicate value, OK
Red = // Duplicate value, OK
}

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

     enum LoopType
{
None, // value is 0
Daily, // value is 1
Weekly = ,
Monthly, // value is 8
Yeayly, // value is 9
DayGap = ,
WeekGap, // value is 16
MonthGap, // value is 17
YearGap // value is 18
}

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

bite
     enum CardDeckSettings : uint
{
SingleDeck = 0x01, // Bit 0
LargePictures = 0x02, // Bit 1
FancyNumbers = 0x04, // Bit 2
Animation = 0x08 // Bit 3
}

十六进制数的一个作用就是用来进行位运算和操作,很方便。

(6)获得所有符号名的方法

 public enum MyFamily
{
YANGZHIPING = ,
GUANGUIQIN = , YANGHAORAN = ,
LIWEI = , GUANGUIZHI = ,
LISIWEN = ,
LISIHUA = ,
} foreach (string s in Enum.GetNames(typeof(MyFamily)))//注意typeof Hanson.Ada
{
Console.WriteLine(s);
}
 

原创:C sharp 中 Enum的几点小 Tips的更多相关文章

  1. golang中设置Host Header的小Tips

    前言 笔者最近时间一直在学习和写Ruby和Go,尤其是Go,作为云计算时代的标准语言,写起来还是相当有感觉的,难过其会越来越火. 不过写的过程中,也遇到了一些小问题,本文就是分享关于go语言设置 HT ...

  2. MYSQL中 ENUM 类型

    MYSQL中 ENUM 类型的详细解释 ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串(&quo ...

  3. 【原创】Matlab中plot函数全功能解析

    [原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...

  4. mysql中enum的用法

    字段 类型 长度/值*1 整理 属性 Null 默认2 额外 注释 enum         说明:enum类型的字段,若长度值写长度1/2,报错 (1)  数据长度为1,则为0,1,2… (2)   ...

  5. JAVA中enum的常见用法

    JAVA中enum的常见用法包括:定义并添加方法.switch.遍历.EnumSet.EnumMap 1.定义enum并添加或覆盖方法 public Interface Behaviour{ void ...

  6. Java中enum的学习总结

    一.通常的定义常量的方法 public class Sex{ public final static int MALE = 1; public final static int FEMALE=2; } ...

  7. MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动

    MVC图片上传详解   MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...

  8. 关于python中Enum的个人总结

    关于python中Enum的个人总结 初识 可以通过enum模块导入 语法 初始化: 可以通过enum_ = Enum('class_name', names,start = 1)来创建,其中name ...

  9. Django中的ORM框架使用小技巧

      Django中的ORM框架使用小技巧 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. Django对各个数据提供了很好的支持,包括PostgreSQL,MySQL,SQLite ...

随机推荐

  1. GDB调试一

    http://blog.csdn.net/haoel/article/details/2881 GDB主要调试的是C/C++的程序.要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行 ...

  2. 慕课linux学习笔记(九)常用命令(6)

    关机与重启命令 Shutdown [选项] 时间 -c 取消前一个关机命令 -h 关机 -r 重启 Shutdown -r now 其他关机命令 Halt Poweroff Init 0 其他重启命令 ...

  3. Maven基础教程

    更多内容请参考官方文档:http://maven.apache.org/guides/index.html 官方文档很详细,基本上可以查找到一切相关的内容. 另外,快速入门可参考视频:孔浩的maven ...

  4. $.unique() 对象组成的数组去掉重复对象

    发现一件事,一个完全由对象组成的数组,用$.unique()方法去掉重复的时候不管用 var arr = [{text:'第一个',value:'1'},{text:'第二个',value:'2'}, ...

  5. 转载:js实现上传图片时 点击浏览后 就可以看到缩略图 很实用

    转载网址:http://blog.sina.com.cn/s/blog_6094f04d0100o6kj.html <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  6. PHP原始的数据库操作

    <?php    //这是一个工具类;作用是完成对数据库的操作;    class SqlHelper{        public $conn;        public $dbname=& ...

  7. Java学习笔记--Java图形用户界面

    AWT:抽象窗口组件工具包 Abstract Windows Toolkit(AWT)是最原始的 Java GUI 工具包.AWT 的主要优点是,它在 Java 技术的每个版本上都成为了一种标准配置, ...

  8. soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  9. adb调试实用命令

    获取设备IMEI: adb shell dumpsys iphonesubinfo 文件在设备和PC端的操作:adb push [PC端源文件路径] [设备的目的文件路径] 例如:adb push C ...

  10. 升级10.11后使用CocoaPod出现-bash: pod: command not found 解决办法-备

    升级10.11后,运行pod命令出现: -bash: pod: command not found 解决办法: sudo gem install -n /usr/local/bin cocoapods ...