歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C#中自定義事件的注意事項

一個類中定義如下事件:




[csharp] 
  1. public delegate void AfterDrawPointEvent(object sender,double x,double y);  

[csharp]
  1. private AfterDrawPointEvent pAfterDrawPointEvent;  
  2. /// <summary>   
  3. /// 插入要素事件   
  4. /// </summary>   
  5. public event AfterDrawPointEvent AfterDrawpoint  
  6. {  
  7.     add  
  8.     {  
  9.         pAfterDrawPointEvent += value;  
  10.     }  
  11.     remove  
  12.     {  
  13.         pAfterDrawPointEvent -= value;  
  14.     }  
  15. }  
  16. private void RaiseAfterDrawPointEvent(object sender, double x,double y)  
  17. {  
  18.     if (pAfterDrawPointEvent != null)  
  19.     {  
  20.         pAfterDrawPointEvent(sender,x,y);  
  21.     }  
  22.   
  23. }  
然後定義實現的響應方法,注意要先去掉舊的響應方法,否則可能出現部分變量的狀態無法更新。代碼如下:

[csharp]
  1. m_pDrawCustomPoint.AfterDrawpoint-= new DrawCustomPoint.AfterDrawPointEvent(m_pDrawCustomPoint_AfterDrawpoint);  
  2. m_pDrawCustomPoint.AfterDrawpoint += new DrawCustomPoint.AfterDrawPointEvent(m_pDrawCustomPoint_AfterDrawpoint);  
Copyright © Linux教程網 All Rights Reserved