委託和事件 7 委託使用案例 資料驗證控制項

2021-09-26 09:29:24 字數 957 閱讀 1215

編寫usercontrol,usercontrol內有乙個textbox,需要對textbox中的值進行驗證。將驗證時機、驗證報錯等寫在usercontrol中,把資料的不同的校驗邏輯通過delegate動態指定。

public validate validator;

private void textbox1_validating(object sender, canceleventargs e)

}public delegate bool validate(string txt);

設定不同的validator即可。

修改校驗的報錯方式。usercontrol11是別人寫的控制項,使用者不用關心什麼時候校驗,校驗出錯的時候怎麼報錯,只要關心對資料進行校驗就可以了,使用控制項的人不用懂winform控制項的開發。

控制項使用者:不用關心控制項在什麼時候進行資料校驗、校驗出錯怎麼報錯,只要指定校驗演算法就可以。

控制項開發者:不用把校驗演算法寫死在控制項裡。

委託**:

public partial class validationtextbox : usercontrol

private void button1_click(object sender, eventargs e)}}

}public delegate void validationdelegate(validationeventargs e); //定義乙個委託

public class validationeventargs //定義乙個函式

public bool isvalid

}

呼叫:

public form1()

void username_validation(validationeventargs e)

}

解耦:解除耦合。兩邊都是「糊塗」。

委託和事件使用示例

net 的事件模型建立在委託機制之上,透徹的了解了委託才能明白的分析事件。可以說,事件是對委託的封裝,從委託的示例中可知,在客戶端可以隨意對委託進行操作,一定程度上破壞了面向的物件的封裝機制,因此事件實現了對委託的封裝。下面,通過將委託的示例進行改造,來完成乙個事件的定義過程 public clas...

C 委託和事件的使用示例

一 委託 使用委託時要先例項化,和類一樣,使用new關鍵字產生委託的新例項,然後將乙個或者多個與委託簽名匹配的方法與委託例項關聯。隨後呼叫委託時,就會呼叫所有與委託例項關聯的方法。與委託關聯可以是任何類或者結構中的方法,可以是靜態方法,只要是可以訪問的方法都可以。1.建立乙個委託型別使用關鍵字del...

C 委託和事件的使用示例

一 委託 使用委託時要先例項化,和類一樣,使用new關鍵字產生委託的新例項,然後將乙個或者多個與委託簽名匹配的方法與委託例項關聯。隨後呼叫委託時,就會呼叫所有與委託例項關聯的方法。與委託關聯可以是任何類或者結構中的方法,可以是靜態方法,只要是可以訪問的方法都可以。1.建立乙個委託型別使用關鍵字del...