作者:xmsheji
转自:http://blog.csdn.net/xmsheji/article/details/4864767
- using System;
- namespace Delegate
- {
- class Program
- {
- public delegate void WeiTuo(char c);//定义一个委托
- static void f(char c)
- {//打印小写字母
- Console.WriteLine(char.ToLower(c));
- }
- static void F(char c)
- {//打印大写字母
- Console.WriteLine(char.ToUpper(c));
- }
- static void Fun(WeiTuo wt,char c)
- {
- wt(c);
- }
- static void Main(string[] args)
- {
- //单播委托
- WeiTuo wt = new WeiTuo(f);//把函数转成委托
- Fun(wt, 'a');
- Fun(f, 'a');
- wt = new WeiTuo(F);
- Fun(wt, 'a');
- Fun(F, 'a');
- //多播委托
- WeiTuo weituo = new WeiTuo(f);
- weituo += new WeiTuo(F);
- Fun(weituo, 'b');
- Console.Read();
- }
- }
- }
1.什么是委托?委托类似函数。但是委托可以作为函数参数。
2.什么时候用委托?当程序中有两个函数的参数和返回值一样时,就可以考虑用委托了。
3.委托有什么好处?易于维护。保护函数内部,增强其安全性。