.Net: C#中的委托(Delegate)和事件(Event)
2021-04-14 23:28
阅读:588
YPE html>
我举两个实例。
1,[3a]不同语言的问候。
2,[3b]中文版QQ和Tencent QQ(国际版QQ)用户个人信息的”性别“呈现。
3、两个委托(Delegate)实例解析。
using System; using System.Collections.Generic; using System.Linq; using System.Web; ////// 语言类 /// namespace Gyg.DE.Models { public class Language { /// /// 声明一个委托 /// /// public delegate string GrateingDelegate(string name); /// /// 中式问候 /// /// /// public static string EngGrateing(string name) { return "英文名字=" + name; } /// /// 英式问候 /// /// /// public static string ChinaGreateing(string name) { return "中文名字=" + name; } public static string GreatePerpon(string name, GrateingDelegate gratePerpon) { return gratePerpon(name); } } }
案例2:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Gyg.DE.Models { public class Sex { public delegate string SexDalegate(string sexCode); public static string ChinaSex(string sexCode) { switch (sexCode) { case "0": return "男"; case "1": return "女"; default: return "未知"; } } public static string EngSex(string sexCode) { switch (sexCode) { case "0": return "girl"; case "1": return "boy"; default: return "Unknown"; } } public static string SexConvert(string sexCode, SexDalegate sexConvert) { return sexConvert(sexCode); } } }
控制器代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Gyg.DE.Models; namespace Gyg.DE.Controllers { public class PerponController : Controller { // GET: Perpon public ActionResult Index() { string name = Language.GreatePerpon("顾牡丹", Language.ChinaGreateing); string nameEng = Language.GreatePerpon("gyg", Language.EngGrateing); ViewData["name"] = name; ViewData["nameEng"] = nameEng; return View(); } public ActionResult SexTest() { ViewData["ChinaSex"] = Sex.SexConvert("0", Sex.ChinaSex); ViewData["EngSex"] = Sex.SexConvert("1", Sex.EngSex); return View(); } } }
页面代码:
@{ Layout = null; } "viewport" content="width=device-width" />Index
@{ Layout = null; } "viewport" content="width=device-width" />SexTest
4、使用委托(Delegate)有哪些好处?
我们现在对委托做一个总结:
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
上一篇:c#之异步Socket通信
下一篇:Windows结构化异常处理浅析
文章来自:搜素材网的编程语言模块,转载请注明文章出处。
文章标题:.Net: C#中的委托(Delegate)和事件(Event)
文章链接:http://soscw.com/index.php/essay/75844.html
文章标题:.Net: C#中的委托(Delegate)和事件(Event)
文章链接:http://soscw.com/index.php/essay/75844.html
评论
亲,登录后才可以留言!