事件处理句柄
在System.WinForms中,许多类定义中的事件中都用到了EventHandler 代表。在System名称空间中定义的EventHandler如下:
public delegate void EventHandler(
Object sender,
EventArgs e
);
这个事件处理句柄说明EventHandler 是一个带有两个参数的方法。第一个参数的类型是object ,第二个参数的类型是EventArgs ,返回值为void。
该方法的签名必须同代表的签名匹配。另外, Application 类定义了静态事件Idle ,该事件将会发出如下通知:应用程序即将进入idle状态。在idle状态下,通过把EventHandle代表添加到Application.Idle中,你可以进行相关处理。
结束工作
一旦用户关闭按钮,就释放表单,程序就结束。在程序返回之前, 一旦关闭按钮释放其表单后, Application.Run 就调用表单的Dispose 方法(第22行)。
关键字override 表明了重载基类Form中的Dispose 方法。Dispose 方法提供了释放非内存资源的机会,诸如window handles,如果不这样做,要等到程序结束之后,才可以释放。假如是后者所说的情况,只要Application.Run一返回,程序就可以结束,
所以,在Dispose 中释放资源与在程序结束之后才释放资源,这两者并无多大差别。然而,在开发设计重要的应用程序时,了解不同类型的资源是如何管理的,以及何时需要程序员个人介入,这一点是很重要的。
小结
现在,我们已经简要介绍了这个用C#编写的简单的Windows 应用程序,当然,并没有覆盖到C#的所有特性,仅介绍了.NET框架的皮毛。我们只是顺带提了提垃圾收集和资源管理,根本没有介绍元数据。尽管如此,,这个例子还是介绍了C#
的几个基本概念,并指出了.NET下的Windows程序设计的一些格式上的区别。
|