Net中委托之三委托的高级应用
2016-08-18 22:13
162 查看
1. 使用委托来解决逻辑分离,解除耦合
2.委托的高级应用实例
2.委托的高级应用实例
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyDelegateDemo { public delegate void SayHelloHandler(string name);//1.委托的声明 public class Greeting { public static void SayHello(string name, PeopleType type) { if (type == PeopleType.Chinese) { Console.WriteLine("早上好,{0}", name); } else if (type == PeopleType.American) { Console.WriteLine("Good morning,{0}", name); } } /// <summary> /// 委托,逻辑分离,解除耦合 /// </summary> /// <param name="name"></param> /// <param name="sayHello">委托的实例</param> public static void SayHelloDelegate(string name, SayHelloHandler sayHello) { sayHello(name);//委托的调用 } public static void SayHelloChinese(string name) { Console.WriteLine("早上好,{0}", name); } public static void SayHelloAmerican(string name) { Console.WriteLine("Good morning,{0}", name); } } public enum PeopleType { Chinese, American } } using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyDelegateDemo { class Program { //采用委托易于扩展,对扩展开放,对修改封闭的原则 static void Main(string[] args) { Console.WriteLine("欢迎来到流星小子博客学习"); Greeting.SayHello("流星小子", PeopleType.Chinese); Greeting.SayHello("Meter", PeopleType.American); //委托的实例化 SayHelloHandler sayHelloHandler = new SayHelloHandler(Greeting.SayHelloChinese); Greeting.SayHelloDelegate("流星小子", sayHelloHandler); SayHelloHandler sayHello = new SayHelloHandler(Greeting.SayHelloAmerican); Greeting.SayHelloDelegate("Meter", sayHello); //sayHelloHandler -= Greeting.SayHelloChinese; //sayHelloHandler += Greeting.SayHelloAmerican; //Greeting.SayHelloDelegate("MeterName", sayHelloHandler); //sayHelloHandler -= Greeting.SayHelloAmerican; Console.Read(); } } }
相关文章推荐
- .net高级应用——委托
- ASP.NET高级应用(2)
- ASP.NET高级应用(1)
- 关于C#/.NET中委托和事件的机制和应用的故事(转)
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中的委托与应用
- Asp.NET 高级应用--数据源控件
- 使用委托进行高级ASP.NET缓存处理
- ASP.NET高级应用GridView控件
- 技术讲座:.NET委托、事件及应用兼谈软件项目开发
- 技术讲座:.NET委托、事件及应用兼谈软件项目开发
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中的委托与应用
- ASP.NET高级应用(2)
- 转: ASP.NET高级应用 (3)
- 史上最强之dos命令-"FOR"-高级应用范例(來源於網絡http://blog.csdn.net/ahpo/archive/2006/06/19/812501.aspx)
- 关于C#/.NET中委托和事件的机制和应用的故事(转)
- .Net Compact Framework 高级篇(2)-- 扩展SOAP应用
- ASP.NET高级应用(3)
- ASP.NET高级应用(2)
- ASP.NET高级应用(1)
- C#/.NET中委托和事件的机制和应用