标签:control else 委托和事件 定义 generic htm font mod sys
我举两个实例。
1,[3a]不同语言的问候。
2,[3b]中文版QQ和Tencent QQ(国际版QQ)用户个人信息的”性别“呈现。
3、两个委托(Delegate)实例解析。
using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// 语言类 /// </summary> namespace Gyg.DE.Models { public class Language { /// <summary> /// 声明一个委托 /// </summary> /// <param name="name"></param> public delegate string GrateingDelegate(string name); /// <summary> /// 中式问候 /// </summary> /// <param name="name"></param> /// <returns></returns> public static string EngGrateing(string name) { return "英文名字=" + name; } /// <summary> /// 英式问候 /// </summary> /// <param name="name"></param> /// <returns></returns> 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; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> </head> <body> <div> @ViewData["name"] <br /> @ViewData["nameEng"] <br /> <a href="/Perpon/SexTest">SexTest</a> </div> </body> </html>
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>SexTest</title> </head> <body> <div> @ViewData["ChinaSex"] <br /> @ViewData["EngSex"] <br /> <a href="/Perpon/Index">Index</a> </div> </body> </html>
4、使用委托(Delegate)有哪些好处?
我们现在对委托做一个总结:
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
.Net: C#中的委托(Delegate)和事件(Event)
标签:control else 委托和事件 定义 generic htm font mod sys
原文地址:https://www.cnblogs.com/gygtech/p/8906657.html