C#中Delphi的影子无处不在,其领导人正是以前的delphi的开发者,(应该是4,5)吧,感觉delphi 4是一次大的飞跃,如同win31到win95一般,rad的速度超乎想象。
下面是C#中的Event事件的写法,与Delphi比较,Event的写法更为简单,快速,.NET的程序在OO方面可能更注重于事件。事件的一般写法。
1.声明一个委托的类型。
public delegate void ChangeEventHandler(object sender,EventArgs s)
2.建立一个事件通知(public event ChangeEventHandler Change)
3.建立OnChanged的虚拟函数
(protected virtual void OnChanged(EventArgs e)
4.其他函数调用OnChanged
5.在声明的类中调用
List.Change += new ChangedEventHandler(ListChanged);
6.private void ListChanged(object sender,EventArgs e);
---------------------------------------------------------------------------------------
下面是关于一个电子纹拍的模拟的部分代码。
using System;
namespace EventPractice
{
/// <summary>
/// Wenzipa 的摘要说明。蚊子拍得类
/// </summary>
public class Wenzipa
{
/// <summary>
/// 蚊子拍的开关
/// </summary>
private bool bswitch; /// <summary>
/// 高压电网
/// </summary>
private int dianwang;
/// <summary>
/// 显示灯
/// </summary>
private bool bLightOn; public event PushSwitchEventHandler pushSwitch;
public event ReleaseSwitchEventHandler releaseSwitch; protected virtual void OnPushSwitch(EventArgs e)
{
bLightOn = true;
if (pushSwitch != null)
pushSwitch(this,e);
} protected virtual void OnReleaseSwitch(EventArgs e)
{
bLightOn = false;
if (releaseSwitch != null)
releaseSwitch(this,e);
} public bool bSwitch
{
get
{
return bswitch;
}
set
{
bswitch = value;
if (bswitch)
{
OnPushSwitch(EventArgs.Empty);
}
else
{
OnReleaseSwitch(EventArgs.Empty);
} }
} public bool LightOn
{
get
{
return bLightOn;
}
} public Wenzipa()
{
//
// TODO: 在此处添加构造函数逻辑
//
bswitch = false;
}
}
}