【C#基础】枚举常见使用方法

自己的粗略见解,望各位看客有错的地方,帮忙指正,感激不尽。

基于定义的使用方法

C# 的枚举是以一种值类型的数据结构,定义起来感觉有点像静态类,枚举名是静态类名,枚举项是静态字段,下面是定义格式:
(访问级别public/protected/…) enum
{
value - list
}
其中value -list 之间使用逗号隔开,在外面使用的时候,是以枚举名.枚举项,来使用,其中枚举项都是值类型,默认第一项的值是0,如果自定义的话,就另说。

基于枚举类型的含义的使用方法

枚举类型,个人认为不仅仅是通过某种形式组织在一起的一组离散值,也是一组有关系的含义集合,比如enum cube{length,width,high},这个枚举可以代表所有的立方体集合,当我们定义一个新的立方体的时候,就可以使用数组去给新的立方体初始化赋值,把具体的枚举项作为数组的索引;
优点:
便于扩充:当立方体新加一个描述参数的话,只需要在原先的枚举cube中新添加一项即可;
代码可读性增强:使用枚举项代表索引,使数组的每一项更加易读;

基于位标志的枚举类型的使用

在实际开发应用中,我们经常需要使用一组离散值来标记状态,枚举在这方面也有较多的使用,我们可以将枚举的具体项的值定义成2的倍数,也就是每个枚举值的二进制形式没有相同的数据,这样的使用可以便于我们将不同的状态灵活组合,以满足实际开发中的不同需求,有的时候,给枚举值配上特性描述标签,更加容易满足业务需求。

代码实现部分

基于定义的使用:
public enum Student
{
xiaoming = 0,
xiaohua =1,
xiaowang = 2,
xiaofeng = 3
}
上面使用枚举对每个学生进行编号,在实际中可以使用(int)Student.xiaoming 来唯一标志xiaoming同学,编码值自己随意定义,可以是任意数字,但是如果没有给具体的数值的时候,第一项默认为,第n项默认是第n-1项的值加一的结果;

基于含义的使用:
public enun cube
{
length,
width,
high,
area
}
定义一个立方体:
public class Cuboid
{
public Cuboid()
{}
public Cuboid(double length,double width,double high):this()
{
this.length = length;
this.width = width;
this.high = high;
}
private double length;
private double width;
private double high;
public double Length{get;set;}
public double Width{get;set;}
public double High{get;set;}
}
public static void Main(string[] args)
{
double[] value = new double[3]{2.0,3.0,4.0};
Cuboid cuboid = new Cuboid(){value[cube.length],value[cube.width],value[cube.high]}
Console.WriteLine(“我自定义的长方体的长度是{0},宽度是{1},高度是{2}”,cuboid.length.ToString(),cuboid.width.ToString(),cuboid.high.ToString());
}

基于位标志的使用:
通常使用枚举来表示一组相互对立又有联系的概念,使用位标志来表示具体的值,这样比较容易计算,比如星期,每周有七天,星期一到星期日,但是还是需要表示工作日和周末两种情况,周末是星期六和星期日,工作日是星期一到星期五;这样的话,枚举就可以定义成下面的形式了
public enum Date
{
Monday = 0x01,//0000 0001
Friday = 0x02, //0000 00010
Wednesday = 0x04, // 0000 0100
Tuesday = 0x08, // 0000 1000
Friday = 0x10, // 0001 0000
Saturday = 0x20, //0010 0000
Sunday = 0x40, //0100 0000
WorkDay = Monday |Friday|Wednesday |Tuesday |Friday ,
WeekDay = Saturday| Sunday
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值