枚举的定义以及使用

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、sbyteshortushortintuintlongulong

也许上面的这些对每一个接触过编程的骚年都不陌生,小弟在此主要想分享下基于二进制定义的枚举。没代码说个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>

 

好了先这么多吧,第一次发,各位大大轻喷,如果您觉得对您有帮助,您的鼓励是小弟坚持的动力。大笑

posted @ 2013-08-30 20:26  将心向明月  阅读(1513)  评论(0编辑  收藏  举报