1>事件在try catch中的運用
在多層架構中try catch事件類似於冒泡,如果不對**做任何處理,無論哪一層發生異常,都會在最頂層的ul層顯示出異常資訊。所以個人觀點,異常的捕獲工作最好在ul層。這樣所有層級報的異常都可以**獲到,因為錯誤會像氣泡一樣最終會在顯示層暴露出來。在每次設計到資料庫的時候捕獲異常,這樣每個頁面的資料操作都會被try catch包裹,有沒有一種更好得方法,讓**更簡潔。答案是肯定的。將控制項事件包裹起來,重新申明乙個事件,在該事件中呼叫控制項的事件,並且捕獲異常。
1using
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.web;
5using
system.web.ui;
6using
system.web.ui.webcontrols;78
using
system.reflection;910
public
partial
class
_default : system.web.ui.page
1116
17protected
void btn_click(object
sender, eventargs e)
1821}22
public
class
eventhandlerwrap
2331
32public
static
implicit
operator
eventhandler(eventhandlerwrap wrap)
3336
37private
void invoke(object
sender, eventargs e)
3843
catch
(exception ex)
4447}48
49private
void logerror(string
errormsg)
50 }
2>事件在使用者控制項中運用
專案中會設計到報表的流程流轉,用到了公司自己研發的工作流,該工作流的功能關聯了報表的刪除以及狀態的顯示,所以不同的報表都會新增該工作流,這會導致乙個問題的出現,每個頁面都必須新增工作流,實現刪除功能和狀態顯示,重複的工作就出現了,所以最總的選擇是將工作流的操作和狀態封裝到自定義空間中。狀態的顯示可以從工作流例項中通過id獲取,但是報表的刪除則需要知道具體的表,所以必須把刪除操作放在頁面,解決的方案是在使用者控制項中申明乙個事件,將刪除的操作委託到具體的每個表報的頁面中。
1using
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.web;
5using
system.web.ui;
6using
system.web.ui.webcontrols;78
public
partial
class
usercontrols_workflow : system.web.ui.page915
protected
void lbndel_click(object
sender, eventargs e)
1620 }
c 委託事件
1,什麼是委託 委託是什麼?從生活理解就像是你是乙個c 程式設計師,你對c 並不了解,當需要進行c 分析的時候你委託給你的一位懂c 的同事幫你來完成 在c 中,委託的作用是這樣描述的 委託就像乙個函式的指標,在程式執行時可以使用它們來呼叫不同的函式。簡單點說,委託能夠引用函式,通過傳遞位址的機制完成...
初識委託 事件
這個是我剛入行第乙個感興趣的知識點,翻了翻不知道什麼時候記的筆記,覺得有必要把自己學的知識在梳理一遍,有一些點比當時更清晰 在這裡,先將一位大牛的部落格貼出來,有興趣的可以去看看,很詳細的介紹了委託與事件,讀了幾遍受益匪淺 c 中的委託和事件 c 中的委託和事件 續 本文例項是在vs2013下實現的...
C 委託事件
一 委託 委託類似於函式指標,但函式指標只能引用靜態方法,而委託既能引用靜態方法,也能引用例項方法。委託使用分三步 1 委託宣告。2 委託例項化。3 委託呼叫。例程一 程式 using system namespace 委託 private int add int num1,int num2 例中,...