博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net知识和学习方法系列(二十一)CLR-枚举
阅读量:6262 次
发布时间:2019-06-22

本文共 923 字,大约阅读时间需要 3 分钟。

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的符号的值。同时期待了解这个变量的准确用途的朋友告知。

本文转自桂素伟51CTO博客,原文链接:http://blog.51cto.com/axzxs/149958 ,如需转载请自行联系原作者

你可能感兴趣的文章
PSQL_标准API和Interface基本的用法和比较(概念)
查看>>
网站目录
查看>>
APUE-文件和目录(七)符号链接
查看>>
CSS 简介
查看>>
System Verilog基础(二)
查看>>
2018/11/26 Samba服务器配置
查看>>
2018/12/08 PAT刷题 L1-034 点赞
查看>>
如何改变TextBox.PassWordChar的值 转
查看>>
css的工作原理
查看>>
【pip】的安装
查看>>
内存泄漏及其检测工具
查看>>
QT Model based vs Item based
查看>>
[Leetcode]669 Trim a Binary Search Tree
查看>>
Linux C Programing - Arguments(2)
查看>>
禁止选择文本和禁用右键 v1.0
查看>>
swift 动画
查看>>
can 驱动
查看>>
Linux使用ASF云挂卡(挂游戏时长)
查看>>
UML入门 之 交互图 -- 时序图 协作图详解
查看>>
【Android 多媒体开发】 MediaPlayer 网络视频播放器
查看>>