再一个WinForm中添加对其包含的一个按钮button1的Click事件的event handler,我们在C# V1.x中常常这样写:

this.button1.Click += new System.**EventHandler**(this.button1_Click);
private void button1_Click(object sender, System.**EventArgs** e)
{
      **MessageBox**.Show("Button 1 is clicked");
}

当然VS.NET的支持让我们不需要手工写出这么多代码。不过当event handler不需要使用sender, e的情况下,能不能只写出event handler的body而无需考虑代理的signature?

在C# V2.0,anonymous method提供了这一可能。上面的代码可以改写为:

this.button1.Click += delegate
{
      **MessageBox**.Show("Button 1 is clicked");
};

贴子以"现状"提供且没有任何担保也没有授予任何权利。


Whidbey C#: 属性的getter,setter可以有不同的可访问性

2004-03-04 by 开心就好

C# 1.0版本下,可读可写属性的getter和setter必须有相同的visibility(可访问性)。这不能满足有些情况下的需求。2.0就解决了这个问题。如下面例子所示,Capacty的setter比getter的Visibility要小。

public int Capacity

{

get

{

return capacity;

}

internal set

{

capacity = value;

}

}

private int …

read more