一直忙于工作,无法系统的学习 vs.net 2005 带来的新特性。
今天看了一下c#的委托,呵呵,无话可说了。
以前声明委托的时候,理解起来、以及使用起来怪别扭的如这样的,按钮的 click 事件
this.button2.Click += new EventHandler(button1_Click);
private void button1_Click(object sender, EventArgs e)
{
Button b = (Button)sender;
System.Console.WriteLine("{0} click.",b.Name);
}
而在2.0里,我们可以这样写
this.button2.Click += button1_Click;
private void button1_Click(object sender, EventArgs e)
{
Button b = (Button)sender;
System.Console.WriteLine("{0} click.",b.Name);
}
初学者,理解这个比较容易了;轮到我理解这个别扭了,呵呵,居然不用委托对象直接调用。
最让人感到兴奋的是,增加匿名的委托调用,这让我们在方法中调用委托的时候,委托中的代码直接访问方法中局部变量
this.button2.Click += delegate(object sender, EventArgs e){
Button b = (Button)sender;
Console.WriteLine("Hello {0}", b.Name);
};
不提供参数的用法
this.button2.Click += delegate{Console.WriteLine("Hello");};
访问局部变量可以这样了
c# 2.0 带来的东西太多了,无法系统的整理,期待正式版的出来。
今天看了一下c#的委托,呵呵,无话可说了。
以前声明委托的时候,理解起来、以及使用起来怪别扭的如这样的,按钮的 click 事件
而在2.0里,我们可以这样写
初学者,理解这个比较容易了;轮到我理解这个别扭了,呵呵,居然不用委托对象直接调用。
最让人感到兴奋的是,增加匿名的委托调用,这让我们在方法中调用委托的时候,委托中的代码直接访问方法中局部变量
不提供参数的用法
访问局部变量可以这样了
1
public Form1()
2
{
3
string str = "Hello world!";
4
InitializeComponent();
5
6
this.button2.Click += delegate { Console.WriteLine(str); };
7
8
}
2
3
4
5
6
7
8
c# 2.0 带来的东西太多了,无法系统的整理,期待正式版的出来。
浙公网安备 33010602011771号