为什么要用委托,
就是把方法封装在声明的的委托对象内,在使用时直接使用委托的声明即可,相当于把一个方法封装在另外一个方法中,这样你就可以很随意的写一些东西了呵呵,或者对主线程进行修改了
其实我自己理解就是把这个方法实例化(缥缈化,提取化,离线化),这样在主线程中也就可以引用了(在多线程中如果要使辅线程对主线程生成的控件访问的话,必须用委托)
namespace Vczx.ProCSharp.Exc { delegate double MathsOp( double x ); class Start { public class MyDelegate { public static double MultiplyBy2( double x ) { return x * 2; } } [STAThread] static void Main(string[] args) { MathsOp operation = new MathsOp( MyDelegate.MultiplyBy2 ); double x = 1.23; double result = operation( x ); Console.WriteLine( "{0} multiply by 2 is {1}", x, result ); Console.Read(); } } }
当然你也直接可以在写委托的时候直接把方法放进去
this.Invoke((EventHandler)(delegate
{
return x * 2;
})