许明会的计算机技术主页

Language:C,C++,.NET Framework(C#)
Thinking:Design Pattern,Algorithm,WPF,Windows Internals
Database:SQLServer,Oracle,MySQL,PostSQL
IT:MCITP,Exchange,Lync,Virtualization,CCNP

导航

C#2.0技术探讨(1):匿名方法

/*--===------------------------------------------===---
匿名方法: 通过+= 后面跟delegate{}; 以内联方式编码
匿名方法是.NET2.0特有的,而不是1.1具有的(给学员演示的时候要注意)
            许明会    2007年12月10日 23:35:30
--===------------------------------------------===---
*/
using System;
using System.Windows.Forms;

namespace xumh
{
    
public class myClass:Form
    {
        
private Button btnHello;
        
private Label lblTime;
        
private Timer tmr;

        
public myClass()
        {
            btnHello 
= new Button();
            btnHello.Text 
= "问好";
            btnHello.Click 
+= delegate{    //测试匿名方法
                MessageBox.Show("Yes,It's Anonymouse method!");
            };
            btnHello.Location 
= new System.Drawing.Point(100,80);
            
this.Controls.Add(btnHello);
            
//lblTime
            lblTime = new Label();
            lblTime.Location 
= new System.Drawing.Point(100,120);
            lblTime.Size 
= new System.Drawing.Size(140,20);
            
this.Controls.Add(lblTime);
            
//tmr
            tmr = new Timer();
            tmr.Enabled 
= true;
            tmr.Interval 
= 1000;
            tmr.Tick 
+= delegate{        //测试匿名方法
                lblTime.Text = DateTime.Now.ToString();
            };
            
//带参数的匿名方法
            this.MouseMove += delegate(object Sender,MouseEventArgs e){
                
this.Text = string.Format("({0},{1})",e.X,e.Y);
                
this.Opacity = double.Parse( e.X.ToString()) /this.Width;
            };
        }
    };

    
public class runMyApp
    {
        
static void Main()
        {
            Application.Run(
new myClass());
        }
    };
}

posted on 2007-12-10 23:51  许明会  阅读(241)  评论(0编辑  收藏  举报