C#中的委托
2016-08-17 15:42
183 查看
1.学习委托一篇好的学习博客:http://www.tracefact.net/csharp-programming/delegates-and-events-in-csharp.aspx
2.委托实例讲解:初级篇
View Code
2.委托实例讲解:初级篇
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test { //1.正常情况下是会把问候的代码封装成类的,所以就会出现如下封装 class GreetDelegateMgr { public delegate void GreetDelegate(string name); public GreetDelegate delegateTest; public event GreetDelegate eventTest; public void MakeGreet(string name) { if (delegateTest != null) delegateTest(name); } public void MakeGreetEvent(string name) { if (eventTest != null) { eventTest(name); } } } class Program { static void Main(string[] args) { //1.这样子虽然也能达到目的,但是违背了封装性,对GreetDelegateMgr的delegateTest成员进行更改 GreetDelegateMgr greetMgr = new GreetDelegateMgr(); //greetMgr.delegateTest = EnglishGreet; //greetMgr.delegateTest += ChineseGreet; //greetMgr.MakeGreet("jiangjing"); //2.引入事件,事件这里只能进行+=操作如果使用=会编译错误,因为eventTest封装了私有的委托,不能对其进行赋值 greetMgr.eventTest += EnglishGreet; greetMgr.eventTest += ChineseGreet; greetMgr.MakeGreetEvent("jiangjing"); Console.ReadKey(); } public static void EnglishGreet(string name) { Console.WriteLine("Hello:{0}", name); } public static void ChineseGreet(string name) { Console.WriteLine("你好:{0}", name); } } }
View Code
相关文章推荐
- C#里的委托和事件实现Observer
- 用JScript实现VB.Net,C#的[委托Delegate]:
- C#中委托,事件理解入门
- C#2.0 新特性探究之委托与匿名委托
- C#体验·委托和事件
- [翻译].NET委托:一个C#睡前故事
- [转载]C#里的委托和事件实现Observer
- C#2.0 新特性探究(二) 委托与匿名委托
- 深入理解C#编程中的组件-事件-委托
- 用 C++ 实现 C# 中的 委托/事件 (2-delegate event functor)
- C#2.0 匿名委托
- C#里的委托和事件实现Observer
- C# 中的委托
- C#学习笔记-delegate 委托
- 用 C++ 实现 C# 中的 委托/事件 (4-functor1)
- 用C++实现C#中的委托/事件(标准C++之升级版)
- C#2.0 匿名委托
- c#2.0 的委托给我们带来良好的客户体验
- 关于C#中的委托- -
- C#2.0 新特性探究之委托与匿名委托