Whidbey C#: 匿名方法 | Anonymous Method

再一个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可以有不同的可访问性

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

            public int Capacity

            {

                  get

                  {

                        return capacity;

                  }

                  internal set

                  {

                        capacity = value;

                  }

            }

            private int capacity = 0;

智力/知识测试:这样的代码拿到1.0的csc上编译,会得到什么样的输出呢?