1.先来一个简单的委托写法,为的是访问一个类中的私有成员。。。。稍微拓展一下,也可以变成回调方法的内部代码。
class Program { static void Main(string[] args) { //调用委托,访问私有成员 Methods m = new Methods(); m.f("你好"); } } //定义一个简单的委托类型 public delegate bool Feedback(string s); class Methods { //初始化一个委托 public Feedback f; public Methods() { //用委托包装改方法 f = new Feedback(writepaper); } //这个方法是私有的 private bool writepaper(string s) { Console.Write(s); return true; } }
2.回调方法
//定义一个简单的委托类型 public delegate bool Feedback(string s); class Program { //这就是回调 Feedback callback; static void Main(string[] args) { Program p = new Program(); //定义回调的方法,调用的是method中的writepaper方法 p.callback = new Feedback(Methods.writepaper); //这相当于系统的invoke p.involke(1,p.callback); Console.ReadKey(); } //用这个名字定义方法,看起来更熟悉 //它可以类比与系统的invoke方法 public void involke(int i ,Feedback fb) { Console.WriteLine(i.ToString()); fb((i+3).ToString()); } } class Methods { public static bool writepaper(string s) { Console.Write(s); return true; } }
委托--------------------------------c#
原文:http://www.cnblogs.com/xiaoleye/p/4928902.html