当前位置: 首页 > news >正文

.net知识和学习方法系列(二十一)CLR-枚举

enum Complexion// 肤色
        {
          White,
          Black,
          Yellow
        }
这是一个枚举,没有什么特别。
说一下枚举的特点吧,其实枚举就是一系列符号和一系列对应的值,在上面的例子中,枚举的基类型是Int32类型,这是默认的类型,对应的各个枚举项,White=0,Black=1;Yellow=2;这就是一个符号与值的对应,CLR在用枚举时,是用的值,并不是符号,符号是开发人员用来能明确其值的含义的。
所有枚举都是从System.Enum派生来的,System.Enum又是从System.ValueType派生来的,System.ValueType的父类是System.Object。即然从System.Enum派生的,当然枚举都属于值类型了。
现在我们看看IL中的Complexion枚举是个什么样子
 
在IL中我们能看到它是从System.Enum继承的,还会发现所有的符号都是一个常量,即static  literal这个标识。
其实可以用这样一个C#代码来说明枚举Complexion
Internal struct Complexion:System.Enum
{
 public const Complexion White==(Complexion)0;
 public const Complexion Black==(Complexion)1;
 public const Complexion Yellow==(Complexion)2;
 public Int32 value_;
}
当然,上面的代码如果写到C#环境中是编译不过的,因为System.Enum是个特殊的类,不允许派生子类型。
在上面的伪代码中,可以看到,每个符号(White,Black,Yellow),都是一个常量,关且是Complexion类型的。
同时在Complexion内部还有一个常量,Value_,从有关资料查询说是包含一个Complexion的符号的值。同时期待了解这个变量的准确用途的朋友告知。

相关文章:

  • 小白三下杭州
  • Backup Exec 12.5 功能增强
  • hdu1020--Encoding
  • 大话西游
  • 主流百兆交换机芯片介绍
  • 谁能监控我的MPLS ×××?
  • apache mysql php for linux 安装
  • 生活英语
  • 微软MVP申请“自我介绍”部分英文示范
  • MSVCR80D.dll not found解决方案
  • 什么是Web Service
  • 【转】关于Hibernate的unsaved-value
  • 《英雄萨姆2》更新秘籍
  • 添加删除程序中的项目清理
  • JSP 404 ErrorPage 自定义页面处理
  • ES6指北【2】—— 箭头函数
  • Google 是如何开发 Web 框架的
  • hexo+github搭建个人博客
  • #Java异常处理
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 2017前端实习生面试总结
  • Akka系列(七):Actor持久化之Akka persistence
  • bootstrap创建登录注册页面
  • EventListener原理
  • express.js的介绍及使用
  • git 常用命令
  • Java Agent 学习笔记
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • javascript面向对象之创建对象
  • Just for fun——迅速写完快速排序
  • Mysql数据库的条件查询语句
  • MySQL数据库运维之数据恢复
  • SQLServer之索引简介
  • Sublime text 3 3103 注册码
  • ubuntu 下nginx安装 并支持https协议
  • 爱情 北京女病人
  • 分布式熔断降级平台aegis
  • 基于axios的vue插件,让http请求更简单
  • 聚类分析——Kmeans
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何胜任知名企业的商业数据分析师?
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 学习笔记:对象,原型和继承(1)
  • 优秀架构师必须掌握的架构思维
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • # 安徽锐锋科技IDMS系统简介
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (HAL库版)freeRTOS移植STMF103
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu