以下程序沒有調試﹐但基本上是事件的典型用法﹔但有可能大家不喜歡
自己定義事件參數。
-----------------------------------------
//聲明事件代表
public delegate void myEventHandler(object sender,
ChangeEventArgs e);
//事件參數類型
public class ChangeEventArgs:System.EventArgs
{ .... }
//宿主類
public class myProducer
{
public event myEventHandler Changing;
....
//一旦調用這個方法就印發事件﹐e可以=null
protected void OnChange(ChangeEventArgs e) {
...
if(Changing!=null)
Changing(this,e); //印發事件的方法
}
}
//事件訂閱類
public class myConsumer{
myProducer producer;
public myConsumer(){
producer=new myProducer();
producer.Changing+=new myEventHandler(callbackProc);
} void callbackProc(object sender,ChangeEventArgs e)
{
Debug.Assert("my call back is running!")
}
}
自己定義事件參數。
-----------------------------------------
//聲明事件代表
public delegate void myEventHandler(object sender,
ChangeEventArgs e);
//事件參數類型
public class ChangeEventArgs:System.EventArgs
{ .... }
//宿主類
public class myProducer
{
public event myEventHandler Changing;
....
//一旦調用這個方法就印發事件﹐e可以=null
protected void OnChange(ChangeEventArgs e) {
...
if(Changing!=null)
Changing(this,e); //印發事件的方法
}
}
//事件訂閱類
public class myConsumer{
myProducer producer;
public myConsumer(){
producer=new myProducer();
producer.Changing+=new myEventHandler(callbackProc);
} void callbackProc(object sender,ChangeEventArgs e)
{
Debug.Assert("my call back is running!")
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货