Enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。
默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。
eg:
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};Sat =>0,Sun=>1…
当然也可以通过通过初始值来改变枚举的默认值
eg:
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};Sat =>1,Sun=>2…
枚举类型有 byte、sbyte、short、ushort、int、uint、long 或 ulong。
也许上面的这些对每一个接触过编程的骚年都不陌生,小弟在此主要想分享下基于二进制定义的枚举。没代码说个JB,直接上代码
public enum MoneyLogEnum { /// <summary> /// 发帖成功 /// </summary> SuccessPublish = 1, /// <summary> /// 帖子被置顶 /// </summary> SetAnia = 2, /// <summary> /// 帖子被推荐 /// </summary> Recommended = 4, /// <summary> /// 帖子被收藏 /// </summary> Collected = 8, /// <summary> /// 回复被评为精彩回复 /// </summary> GoodReply = 16, /// <summary> /// 帖子被网友加分 /// </summary> AddPoints = 32, /// <summary> /// 扣除金币 /// </summary> MinusPoint = 64 }
依稀记得当时做项目时老大跟我说,一会我要给你讲个东西,可能你一下子不会明白,然后我就各种等他啊,就在想他会给我讲什么呢,后来才知道他就是要给我讲这个东西。小弟其实表达不是很好,也不知道要说些什么。
好吧我们为什么要这样做呢?当然不是闲的蛋疼,这么做的目的就是为了方便我们去数据库里查询数据
if (enumSum > 0) { strSql.Append(" and LogType & @LogType"); MySqlParameter mySqlParameter = new MySqlParameter("@LogType", MySqlDbType.Int32) {Value = enumSum}; parameters.Add(mySqlParameter); }
应该能看明白是什么意思吧。比如我们要查数据库中LogType为1和2的数据 我们只需给上述sql语句的参数传枚举值为1和2的和。
此外最近在做一个项目,经常要用到比如某个字段的状态,并且要在界面上显示成下拉框。这时如果将这个定义成枚举的话,将会非常方便,我们只需对这个枚举进行遍历并且绑定就可以了。
<select name="loginType" id="loginType"> @foreach (int code in Enum.GetValues(typeof (MoneyLogEnum))) { <option value="@code">@Enum.GetName(typeof(MoneyLogEnum),code)</option> } </select>
好了先这么多吧,第一次发,各位大大轻喷,如果您觉得对您有帮助,您的鼓励是小弟坚持的动力。class="wlEmoticon wlEmoticon-openmouthedsmile" alt="大笑" src="/Upload/Images/2013083021/C6E02898B4709E99.png">