程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET自定義控件組件開發 第三章 為控件添加事件 後篇

ASP.NET自定義控件組件開發 第三章 為控件添加事件 後篇

編輯:關於ASP.NET

前一篇文章只是簡單的說了下事件,但是大家應該方法,在ASP.NET自定義控件中只是簡單那麼定義事 件是行不通。如果大家開發的是WinForm中的事件,之前的定義可能沒有什麼大的問題,只是在效率方法 欠考慮而且,還是可以運行的。

下面我們就回到ASP.NET中的事件。

大家也許看了我們之前定義的事件,確實,事件一般是那麼定義的,但是那樣定義事件後的,運行起 來的效率不搞,因為那樣定義事件後,編譯器在編譯事件代碼的時候,會自動的為我們加入很多多線程安 全的代碼,就是說,雖然我們只是定義幾行代碼,大但是編譯器為我們做了很多額外的事情,當然,這樣 代碼的運行的效率可想而知。

在很多的時候,我們自定義控件的事件不是需要考慮多線程安全等問題的,所我們就要改變代碼,使 其運行的更加好,我們就采用下面的方法:顯示的申明事件:

1
 2 //其實其實一個輔助的變量,用來做Hashtable中的”鍵“
 3 private static object ValidateCreditCardFormKey = new object();
 4         public event ValidateCreditCardFormEventHandler ValidateCreditCardForm
 5         {
 6             add
 7             {
 8                 Events.AddHandler(ValidateCreditCardFormKey, value);
 9             }
10             remove
11             {
12                 Events.RemoveHandler(ValidateCreditCardFormKey, value);
13             }
14         }
15
16
17         protected void OnValidateCreditCardForm(ValidateCreditCardFormEventArgs args)
18         {
19             ValidateCreditCardFormEventHandler handler = Events

[ValidateCreditCardFormKey]
20                                                                         as 

ValidateCreditCardFormEventHandler;
21             if (handler != null)
22                 handler(this, args);
23         }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved