大家好,我是大成子,今天给大家讲一讲枚举的应用。
前言
枚举类型enum是C#中基本的值类型数据类型,适当的用好它,有助于提高代码的简洁性和易读性。
枚举语法定义格式为:enum 枚举名 {枚举元素1,枚举元素2,……};
应用
在正常的开发中,像人的性别、数据的状态、人的学历水平、音乐播放器的播放模式等等应用场景,在数据库中往往存的是对应的code,比如性别,0---男,1---女,2---未知,我们在后台代码中则有枚举:


相应的转换
在实际当中,存放于数据库的字段一般为varchar,到后台就是string,所以都是在string和枚举之间互相转换。
string=>枚举

实际上我这里先将string转换了int再转换成枚举值
但是当我们数据库中存的字符在后台并不能转换成int型,该怎么办呢,比如用来存时间节点的年份,年中--Mid,年末--End,难道还能定义这样的枚举吗?

这个时候我们想到了加Attribute
分别在枚举成员的头上加上[Description]如下图所示:

别忘了要引入命名空间:

另起一个拓展类:注:类必须是静态类,方法必须是静态方法,关键字this(在我的另一篇文章里有讲解拓展方法的学习)



具体实现的代码小编就不细讲了,有不明白的可以再联系小编,别忘记还需要引入命名空间:

接下来,我们去控制台测试一下:


很明显,是没错的。好了,今天的学习就到这里结束咯,我们下期再见!
微信公众号:dotNET学习天地
网友评论