『转』数据库的委托之类型分类处理

来源:互联网 发布:软件产品代理协议 编辑:程序博客网 时间:2024/06/05 20:14

『转』数据库的委托之类型分类处理 很久没研究数据库了,因为 XEIM 飞鸽传书 这个软件需要用到数据库,于是研究一下。
转载的,上网搜原创,我也不知道哪里来的。
一般数据库里区分类别可以直接存放字符,也可以用数字区分。

比如1,普通会员 2,管理员 3,超级管理员;库里面存放的是1,2,3等形势。但出库后显示我们需要转换成别人能看的懂的。

所以大家也做数据字典,但每次我做过的数据字典我都记不了,而且使用起来调用的方法名繁琐。

委托可以帮到很大的忙,相信很多人也经常用委托来处理其他事件方法。

比如,我们做一个这样的字典:

/// <summary>        /// 根据数字类型取得该会员的类型名称        /// </summary>        /// <param name="Typeid"></param>        /// <returns></returns>        public string GetNumberType(int Typeid)        {            string laststr = string.Empty;            switch (Typeid)            {                case 0:                    laststr = "普通会员";                    break;                case 1:                    laststr = "VIP会员";                    break;                case 2:                    laststr = "至尊会员";                    break;            }            return laststr;        }
我们这样经常使用这种方法来调用数据字典,简单又实惠。

但是诸如此类需要我们大量做的数据字典太多太多,我们每一次使用都要去找类库查看方法名,太不人性化。

             /// <summary>        /// 根据类型取得该消息的类型          /// </summary>        /// <param name="Typeid"></param>        /// <returns></returns>        public string GetMsgType(int Typeid)        {            string laststr = string.Empty;            switch (Typeid)            {                case 1:                    laststr = "私人消息";                    break;                case 2:                    laststr = "系统消息";                    break;                case 3:                    laststr = "官方消息";                    break;            }            return laststr;        }
使用委托就可以不用记这些字典的方法名了。

        //委托办事儿去吧         public delegate string GetType(int typeid);                public static string GetLastType(int cot, GetType MakeType)        {            if (cot > 0)            {                return MakeType(cot);            }            else            {                return "";            }         }

使用委托的关键字 delegate 定义了一个GetLastType方法来“处理”诸如此类繁琐的事儿,有人代理了,还要有人来

“代理吧”以后我们要做事儿就找“代理”,来看看代理长什么样?

/// <summary>        /// 代理办事        /// </summary>        /// <param name="typeclass">1,会员的类型;2,消息的类型 </param>        /// <param name="typeid">出库的数字类型</param>        /// <returns>返回名称</returns>        public string Gettype(int typeclass,int typeid)        {            string laststr = string.Empty;            switch(typeclass)            {                case 1:                 laststr=  GetLastType(typeid, GetNumberType);                 break;                case 2:                 laststr = GetLastType(typeid, GetMsgType);                 break;            }            return laststr;        }
使用的时候就用Gettype方法,写上注释,就完事OK了。省的我们还要去记字典方法名。