編程要講效率,盡管現(xiàn)在的計(jì)算機(jī),速度是不成問(wèn)題,但是,如果一行代碼能完成,為什么要用更多的代碼呢?現(xiàn)在介紹VB中一些可用一行代碼完成的技巧。
1、下列代碼,則是對(duì)邏輯運(yùn)算不清楚造成 If A=true Then 可以: C=A XOR B 2、如果加上下列代碼: If C=true then D=Iif((A XOR B),28,29) 3、布爾賦值,常被人忽略,如: If A= 13 then 可以: B = A = 13 或者: B = (A = 13) 我更喜歡用后者,這樣代碼易于看懂。 4、字串有效性檢測(cè): If IsNull(StrOrg) Or StrOrg="" then 可以: If Len(StrOrg & "")<>0 then 5、字串重復(fù)次數(shù) RepeatCount=Ubound(Split(StrOrg,StrFind)) 同樣,如果要對(duì)字串有效性判斷: RepeatCount=Iif((Len(StrOrg & "")=0), 0, Ubound(Split(StrOrg,StrFind)) 6、有時(shí)需要判斷字串?dāng)?shù)組中是否有這一元素,這時(shí)最好不用數(shù)組,而用分隔符字串,于是: If Len(OrgStr)= Len(Replace(OrgStr,FindStr)) then 則表明,此元素不存在。 7、對(duì)數(shù)組初始化,最好用變體,這樣,也是一行語(yǔ)句,如: IntArr=Array(12,28,29,30,31,52,24,60) 注意,此時(shí)需要用變量后綴。上面代碼,如要定義為長(zhǎng)整型,則 IntArr=Array(12&,28&,29&,30&,31&,52&,24&,60&) 要將IntArr 定義為變體 8、判斷大小: IntMax = Iif((IntA > IntB), IntA, IntB)
IntMin = Iif((IntA < IntB), IntA, IntB) 9、按索引的Select Case Function GetChoice(Ind As Integer) 10、按表達(dá)式的Select Case(這種轉(zhuǎn)換要求不能有Case Else的才可以這樣,否則會(huì)出錯(cuò)) Function MatchUp (CityName As String) 11、使用Iif,前面已有 Function CheckIt (TestMe As Integer) 12、字串動(dòng)態(tài)數(shù)組是否已初始化 If Len(Join(StrArr))=0 then 字串動(dòng)態(tài)數(shù)組未初始化。 13、指定只讀CombBox的當(dāng)前值,如果能確認(rèn)這個(gè)值就在其中,一定不會(huì)錯(cuò),則: Combbox=CurValue 注意,不可以寫成: Combbox
.text=CurValue 前者實(shí)際是寫 _default 這個(gè)屬性,而后者則是寫Text 因?yàn)橹蛔x,則會(huì)導(dǎo)致錯(cuò)誤 14、如果有下列代碼:
Select Case CombBox.text 則可以用ItemData屬性,即: "London" 的 Itemdata=3 于是: Call FuncStrLang(CombBox.ItenData) 15、如果有下列代碼: Select Case CombBox.text 只要: CallByName ClsCity, "CityIntr_" & CombBox.text, vbMethod 16、復(fù)制數(shù)組到另一變量中: Dim iOrgArr(30) as Integer 即主變體直接取數(shù)組指針,則所有元素都復(fù)制了過(guò)去。 17、如果有下列代碼: Do While Not RsAdo.Eof 則只要: DesStr=RsAdo.GetString() |
|