色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

從丑陋到優雅,讓代碼越變越美續集之服務器端數據校驗

    數據校驗是兩方面的,客戶端校驗雖然可以大大減少服務器回調次數提升用戶體驗.但是客戶端校驗并不是萬能的,從原理上說,客戶端返回的數據都是不可信任的,服務器端校驗必不可少。(關于客戶端校驗的總結:從丑陋到優雅,讓代碼越變越美(客戶端檢測方法思考) )

   總的來說,服務器端代碼也經歷了相似的幾個過程:

   以判斷一個輸入是否是可以轉換成整數為例,開始大家都會續項強寫:

Code1
string str = txtTest.Text;
if (!string.IsNullOrEmpty(str))
{
    
int? intResult = 0;
    
if (int.TryParse(str
out intResult))
    {
        
if(intResult>0 && intResult<100)
        {
            
//success
        }
        
else
        {
            ShowMessage(
"輸入必須大于0小于100");
        }
    }
    
else
    {
        ShowMessage(
"不能格式化為Int類型");
    }
}
else
{
    ShowMessage(
"輸入為空");
}

 返回info是因為我們在后臺代碼中,往往需要根據檢測結果做其他業務方面的處理,如果你不需要返回信息,并不想單獨在外邊寫ShowMessage函數,可以在vInfo里面增加一個ShowMessage函數,讓貧血的實體類不在貧血,實現像下面這樣看起來更優雅的檢測:

 

Code7
vInfo info = vHelper.StartVerify(10)
    .IsNotNullOrEmpty(
"輸入為空")
    .Min(
0
"輸入小于0")
    .Max(
100
"輸入大于100")
    .EndVerify()
    .ShowMessage();

int類型檢測子類:

 

Code10
public class vInt
v
{
    
int? intT = null;

    
public vInt(int? T)
    {
        intT 
= T;
        Status 
= true;
        Message 
= string.Empty;
    }

    
public vInt IsNotNullOrEmpty(string msg)
    {
        
if (intT == null)
        {
            Status 
=
 false;
            Message 
= msg;
        }

        
return this;
    }

    
public vInt Min(int minstring msg)
    {
        
if (!Status)
            
return this;

        
if (intT < min)
        {
            Status 
= false;
            Message 
= msg;
        }

        
return this;
    }

    
public vInt Max(int maxstring msg)
    {
        
if (!Status)
            
return this;

        
if (intT > max)
        {
            Status 
= false;
            Message 
= msg;
        }

        
return this;
    }
}

NET技術從丑陋到優雅,讓代碼越變越美續集之服務器端數據校驗,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 天气| 宁南县| 民权县| 湟中县| 上饶市| 东阿县| 项城市| 巢湖市| 绥芬河市| 五峰| 宜兰县| 安泽县| 阿坝县| 大荔县| 安达市| 罗山县| 西乡县| 白朗县| 满城县| 维西| 清徐县| 中宁县| 教育| 香格里拉县| 绥阳县| 卫辉市| 江津市| 潍坊市| 正宁县| 太和县| 石林| 屏南县| 保亭| 长汀县| 定西市| 香港 | 黔南| 乌兰浩特市| 海城市| 长宁区| 汨罗市|