的情況是這樣的:C#驗證方法
有4個控制兩個下拉菜單,兩個日期選取器和一些驗證規則。一個是主下拉
取決於倒在主降值,一些驗證規則將在兩個日期選取器和其他下拉控制應用。如果用戶改變在任何四個控制值
此驗證規則將觸發。
錯誤提供商需要在編輯的最後一個控制設置。
我想創造每個驗證規則的一種方法的。一個主法語法:
Private void ValidateData(Control ctrl)
{
ClearAllErrors();
switch(value value in master dropdown)
case 'Value 1' : Rule1(ctrl)
case 'Value 2' : Rule2(ctrl)
....
}
而治之的方法是這樣的:
Private void Rule1(Control ctrl)
{
//Rule Logic
//Eg. Date in dropdown should between 5 days after the date in dropdown1
//and 3 days before the date in dropdown2.
//Set error provider on the control if rule breaks.
}
現在對任何四個控制的確認事件,我將傳遞控制和調用是validateData()方法。
想法是保持代碼的可維護性。這種方法是否可以通過任何方式進行優化,或者有更好的方法來處理這些驗證。
你能詳細說一下如何在驗證的情況下實現工廠模式嗎?也許一些僞代碼? – 2010-04-20 07:59:08
請參閱我提供的鏈接中的C#示例。您可以返回布爾型,表示配置有效或無效,也可以使用基於異常的方法。 – thelost 2010-04-20 08:03:35
不錯的選擇,但是:我們需要爲每個規則創建一個新類,它將實現一些基類,比如ValidationBase。隨着規則數量的增加,似乎所需的班級數量將超過屋頂。 – 2010-04-20 13:32:10