2015《Cocos2dx-JS游戏集合》

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一般数据库里区分类别可以直接存放字符,也可以用数字区分。

比如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了。省的我们还要去记字典方法名。

posted on 2011-02-12 16:12  入梦凡尘  阅读(2220)  评论(5编辑  收藏  举报