关于委托

为什么要用委托,

就是把方法封装在声明的的委托对象内,在使用时直接使用委托的声明即可,相当于把一个方法封装在另外一个方法中,这样你就可以很随意的写一些东西了呵呵,或者对主线程进行修改了

其实我自己理解就是把这个方法实例化(缥缈化,提取化,离线化),这样在主线程中也就可以引用了(在多线程中如果要使辅线程对主线程生成的控件访问的话,必须用委托)

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;

})

原文地址:https://www.cnblogs.com/mamiyiya777/p/6748070.html