匿名方法 Anonymouse Method

DEMO: Object Initializer, Anonymouse Method.

 

using System;
using System.Windows.Forms;

public  class MyClass
{
     public  static  void Main()
    {
        Button btnHello =  new Button();
        btnHello.Text =  " &Hello ";
        btnHello.Click +=  delegate{ // Anonymouse Method
            MessageBox.Show( " Yes! It's the Anonymouse Method! ");
        };
        
        Form form =  new Form{Height= 255, Width= 255// Object Initializer
            MaximizeBox= false, FormBorderStyle = FormBorderStyle.FixedSingle};
        form.MouseMove +=  delegate( object Sender, MouseEventArgs e)
        { // delegate{         // Anonymouse Method with Parameters
            form.BackColor = System.Drawing.Color.FromArgb(e.X< 0? 0:e.X,e.Y< 0? 0:e.Y, 255);
        };
        
        Timer tmr =  new Timer{ Enabled =  true, Interval =  1000};
        tmr.Tick +=  delegate{
            form.Text = DateTime.Now.TimeOfDay.ToString();
        };
        
        form.Controls.Add(btnHello);
        Application.Run(form);
    }
}

 上面代码经过Reflector反编译以后,稍加修改也能运行! 看看操蛋的操作符吧 =>

 

using System;
using System.Drawing;
using System.Windows.Forms;

public  class MyClass
{
     public  static  void Main()
    {
        Button button =  new Button {
            Text =  " &Hello "
        };
        button.Click += (param0, param1) => MessageBox.Show( " Yes! It's the Anonymouse Method! ");
        Form form =  new Form {
            Height =  0xff,
            Width =  0xff,
            MaximizeBox =  false
        };
        form.MouseMove += (Sender, e) => {form.BackColor = Color.FromArgb(e.X, e.Y,  0xff);};
        Timer timer =  new Timer {
            Enabled =  true,
            Interval =  0x3e8
        };
        timer.Tick += (param0, param1) => {form.Text = DateTime.Now.TimeOfDay.ToString();};
        form.Controls.Add(button);
        Application.Run(form);
    }
}

再来看看ILDASM反编译的结果:注意类的嵌套,再有就是方法名称<Main>b_4类似的命名是错误的。匿名方法 Anonymouse Method_第1张图片

 

你可能感兴趣的:(匿名方法 Anonymouse Method)