細微之處才能顯示水平

2021-09-09 00:12:56 字數 3515 閱讀 9477

1.contains

最近上了個新的產品,但是不希望所有的客戶都能使用,於是在配置檔案裡面做了乙個過濾,看起來很簡單乙個功能,只要判斷當前登入的客戶是否包含在這個配置的字串裡面就可以了,假設在config檔案裡面有乙個dfcorporation節點,值是'testa|testb'這樣的值,**如下,看上去沒有什麼錯誤嗎?

dfcorporation"];

if (wsflt.productsource == 4 && (!string.isnullorempty(wsflt.directflightchannel) && wsflt.directflightchannel.toupper() == "

zh-ws"))

} 其實是又問題的,關鍵在corporationids.contains(corporationid)這句,如果有乙個客戶**是'test',很明顯會驗證通過,沒有扮演過濾的作用,因為'testa|testb'是包含'test'的,於是做了下面的改進。

//

公司,產品過濾

dfcorporation"];

string corparray = corporationids.split(new

char );

if (wsflt.productsource == 4 && !string.isnullorempty(corporationid) && (!string.isnullorempty(wsflt.directflightchannel) && wsflt.directflightchannel.toupper() == "

zh-ws"))

}if (!issupportzhws)

}

還可以這樣寫,利用list的contains方法

supportdirectairlinelist"];

if (!string

.isnullorempty(directairlinelist))

supportdirectairlinelist = new list(directairlinelist.toupper().split('|'

));

//直連航班過濾

if (wsflt.productsource == 4 && (!this.supportdirect || !this

.supportdirectairlinelist.contains(wsflt.airlinedibitcode.toupper().trim())))

2.語句上下文

注意上一句對下一句的影響,就像下棋一樣要能看到後面幾步,這個需要一定的功力。看下面的**,如果wsflt.directflightchannel="mu-ws" ,第一句會得到flt.directflightchannel="mu-ws",這個時候還沒有錯,再執行下面一句會得到flt.directflightchannel="mu",執行第三句會得到flt.directflightchannel="",很顯然這是錯誤的。

//

是直連航班應該都有directflightchannel

if (!string

.isnullorempty(wsflt.directflightchannel))

正確的寫法如下,這個才是正解。

switch

(wsflt.directflightchannel.toupper().trim())

如果傳入的是乙個字元『t』,下面這樣寫是不行的

db.addinparameter(dbcommand, "@isneedprint", dbtype.byte, o_ordersentity.isneedprint);

應該這樣

db.addinparameter(dbcommand, "@isneedprint", dbtype.ansistringfixedlength, o_ordersentity.isneedprint);

3.避免使用陣列下標

"

flightagencyofdirectflights_hu

" value="

3u-ws:520,8l-ws:539,9c-ws:551,cz-sp:528,gs-ws:540,ho-ws:636,hu-ws:507,jd-ws:538,mu-sp:528,mu-ws:569,pn-ws:541,t8-ws:528,zh-ws:571,cz-ws:661

" />

//////

獲取直聯政策產品的票台

//////

直聯政策產品渠道標識

///票台

public

static

int getstrategyflightagencynew(string

directflightchannel)

else

if (dae ==directairlineenum.cz)

else

if (dae ==directairlineenum.hu)

else

if (dae ==directairlineenum.mu)

else

if (dae ==directairlineenum.jd)

else

if (dae ==directairlineenum._8l)

else

if (dae ==directairlineenum.gs)

else

if (dae ==directairlineenum.pn)

else

if (dae ==directairlineenum._9c)

else

if (dae ==directairlineenum.t8)

else

if (dae ==directairlineenum.muws)

//else if (dae == directairlineenum.zh)

//else

if (dae ==directairlineenum.zhws)

else

if (dae ==directairlineenum.hows)

return

result;

}

換一種寫法,使用字典來避免核對陣列下標的麻煩

///

///獲取直聯政策產品的票台

/// ///

直聯政策產品渠道標識

///票台 public

static

int getstrategyflightagencynew(string

directflightchannel)

}

}if(dicdirectflightagency.containskey(directflightchannel))

}return

result;

}

KMP演算法(2) 其細微之處

系列文章目錄 kmp 演算法 1 如何理解 kmp kmp演算法 2 其細微之處 本篇來談一談kmp的一些細微之處,直接進入主題。p為模式串,下標從0開始 void getnext string p,int next else j next j 在s中找到p第一次出現的位置 int kmp stri...

金陵飯店 細微之處見真情

已經不記得什麼時候第一次來南京,對南京的印象還不錯。剛開始是住金陵飯店,後來找到了個新家 丁山香格里拉飯店。總覺得香格里拉的服務很標準,很多人性化的服務讓人很愉快。不記得從去年什麼時候,發覺香格里拉飯店已經悄無聲息地撤出了丁山飯店的管理,丁山重回丁山。由於路途有點遠,加上對服務的擔心,所以重新回歸金...

軟體構造的注意事項(細微之處見差距)

軟體結構設計的啟發式規則 1 模組功能的完善化 執行規定功能部分 出錯處理部分 需返回給呼叫者資料時,返回是否正確結束標誌。2 消除重複功能 3 將模組的影響限制在模組的控制範圍內 4 深度 寬度 扇出和扇入適中 5 模組大小適中 模組過大 可理解程度下降。模組過小 開銷大於有效作業系統介面複雜。6...