編寫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...