最近在学《.net深入体验与实战精要》。
今天就来初步讲解下委托。
一句话:委托定义了方法类型,可以将方法当做另一个方法的参数进行传递。委托包涵的只是方法的地址,而不是数据。类似于c指针。
委托的语法:
1 delegate void Saydelegate(string name);
delegate 是用于声明一个应用类型,用于封装命名方法或匿名方法。
委托的使用:
现在我想用委托的方法,输入name , 将"你好"转换成不同的language输出 "你好" + name.
using System; namespace ConsoleApplication1 { //首先声明委托 public delegate void SayDelegate(string name); public class ClassPeople { public void Saychinese(string name) { Console.WriteLine("你好," + name); } public void SayEnglish(string name) { Console.WriteLine("Hello,"+ name); } //下面一句调用SayDelegate作为参数,委托调用执行的方法 public void DoWork(string name,SayDelegate Makesay) { Makesay(name); } } class Program { static void Main(string[] args) { ClassPeople cp = new classPeople{}; //委托实例的调用 cp.DoWork("李",cp.Saychinese); cp.DOwork("li",cp.SayEnglish) System.Console.ReadLine(); } } }