日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一些设计思想的汇集(2)

發布時間:2025/4/16 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一些设计思想的汇集(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

關于畫面內容的check的設計

首先定義接口

public interface IValidator {
??? void Validate(object value);
}

及虛類

public abstract class AbstractValidator {

??? private string errorMessage;
??? public string ErrorMessage {
??????? get { return errorMessage; }
??????? set { errorMessage = value; }
??? }

??? protected bool IsEmptyString(object obj) {
??????? if (obj == null || obj.ToString() == string.Empty) {
??????????? return true;
??????? } else {
??????????? return false;
??????? }
??? }

??? public AbstractValidator() {
??????? return;
??? }
}

然后定義各個具體的check類,比如只能輸入半角英數字的check

public class AlphabetAndNumberValiator : AbstractValidator, IValidator {

??? public void Validate(Object value) {
??????? Regex regex = new Regex(@"[a-zA-Z0-9]");
??????? if (!regex.IsMatch(value.ToString())) {
??????????? throw new ValidatorException(this.ErrorMessage);
??????? }
??? }

??? public AlphabetAndNumberValiator() {
??????? this.ErrorMessage = "請輸入半角英數字";
??? }
}?

最后定義容器

public class ActiveValidator {

??? private ErrorProvider errorProvider;

??? private Dictionary<Control, List<IValidator>> dic = new Dictionary<Control, List<IValidator>>();

??? private bool isAutoAddEventHandler = true;
??? public bool IsAutoAddEventHandler {
??????? get { return isAutoAddEventHandler; }
??????? set { isAutoAddEventHandler = value; }
??? }

??? public void AddValidator(Control control, IValidator validator) {
??????? if (dic.ContainsKey(control)) {
??????????? if (dic[control].Contains(validator) == false) {
??????????????? dic[control].Add(validator);
??????????? }
??????? } else {
??????????? List<IValidator> list = new List<IValidator>();
??????????? list.Add(validator);
??????????? dic.Add(control, list);
??????????? control.Validating += new CancelEventHandler(this.DoValidation);
??????? }
??? }

??? public bool DoAllValidation() {
??????? this.errorProvider.Clear();
??????? bool ret = false;
??????? foreach (Control control in dic.Keys) {
??????????? foreach (IValidator validator in dic[control]) {
??????????????? try {
??????????????????? validator.Validate(control.Text);
??????????????? } catch (ValidatorException ex) {
??????????????????? this.errorProvider.SetError(control, ex.Message);
??????????????????? ret = true;
??????????????? }
??????????? }
??????? }
??????? return ret;
??? }

??? private void DoValidation(object sender, EventArgs e) {
??????? if (this.isAutoAddEventHandler) {
??????????? this.errorProvider.Clear();
??????????? Control control;
??????????? if (sender is Control) {
??????????????? control = (Control)sender;
??????????? } else {
??????????????? return;
??????????? }
??????????? List<IValidator> list;
??????????? if (dic.ContainsKey(control)) {
??????????????? list = dic[control];
??????????? } else {
??????????????? return;
??????????? }
??????????? foreach (IValidator validator in list) {
??????????????? try {
??????????????????? validator.Validate(control.Text);
??????????????? } catch (ValidatorException ex) {
??????????????????? this.errorProvider.SetError(control, ex.Message);
??????????????????? // TODO
??????????????? }
??????????? }
??????? }
??? }

??? public ActiveValidator(ErrorProvider errorProvider) {
??????? this.errorProvider = errorProvider;
??? }
}

?

畫面類追加例

??????????? this.validator = new ActiveValidator(this.errorProvider);
??????????? this.validator.AddValidator(this.TextBox1, new AlphabetAndNumberValiator());

同時,在提交button的click事件中,也可以調用this.validator.DoAllValidation(),做全畫面注冊控件的check.

轉載于:https://my.oschina.net/cjkall/blog/195903

總結

以上是生活随笔為你收集整理的一些设计思想的汇集(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 丁香花免费高清完整在线播放 | 男人的天堂avav | 中文av字幕 | 国产伦精品一区二区三区免费视频 | 波多野吉衣在线视频 | 亚洲综合久 | 欧美日韩亚洲国产精品 | 欧美7777 | 日本不卡久久 | 久操视频在线播放 | 亚洲欧美日韩一区在线观看 | 操操网 | 乳孔很大能进去的av番号 | 琪琪秋霞午夜被窝电影网 | 男人天堂a在线 | 专干老肥女人88av | 成全世界免费高清观看 | 日韩激情一区二区 | 我要看一级片 | 嫩草影院菊竹影院 | 日韩在线视频免费 | 国产精品亚洲AV色欲三区不卡 | 成人深夜福利视频 | 亚洲图片综合区 | avtt国产| av大片免费 | 亚洲精品在线中文字幕 | 韩日一区二区三区 | 亚洲成人久久精品 | 成人深夜福利在线观看 | 色婷婷综合久久 | 91一区二区在线观看 | 国产亚洲欧美一区二区三区 | 看久久 | 欧美sm凌虐视频网站 | 日本一区二区黄色 | 亚洲深夜福利视频 | 79日本xxxxxxxxx18| 一区视频网站 | 尤物视频在线观看国产 | 99热日本 | 欧美freesex黑人又粗又大 | 午夜一级影院 | 波多野吉衣一二三区乱码 | 婷婷操| 韩国jizz| 天使色吧 | 99热这里只有精品久久 | 国产综合精品一区二区三区 | 91在线超碰| 亚洲色图另类 | 日韩精品一区二区在线看 | 一区二区三区在线看 | 国产精品久久久久一区二区三区 | 国产精品一区二区性色av | 在线观看jizz | 国产裸体美女永久免费无遮挡 | 少女视频的播放方法 | 日本一级大毛片a一 | 国产精品一区二区三区免费在线观看 | 黄色av一区 | 人人超碰人人 | 国产熟女一区二区三区五月婷 | 久久久久久久国产精品毛片 | 99热这里 | 中文字幕15页 | 黄色一级片一级片 | 91精品网 | 北条麻妃在线一区 | 国产在线色 | 九色91popny蝌蚪 | 色婷婷一区二区三区四区 | 久久色av | 亚洲综合在线中文字幕 | 手机av在线免费观看 | 成人久久影院 | 又黄又刺激的视频 | 五月深爱婷婷 | 蜜桃视频无码区在线观看 | 超碰97人| 99精品视频在线观看免费 | 日韩精品久久一区二区 | 午夜亚洲av永久无码精品 | 狂野少女电影在线观看国语版免费 | 亚日韩 | 日韩欧美在线一区二区三区 | 伊人精品在线视频 | 国产精品国产精品国产专区 | 怨女1988国语版在线观看高清 | 国产精品丝袜一区二区 | 国产人妖视频 | 少妇媚药按摩中文字幕 | 国产又粗又黄的视频 | 日韩123区 | 亚洲永久在线 | 人妻体内射精一区二区三区 | 日本私人影院 | 日韩精品在线观看视频 | av中亚 |