不管再怎麼樣複雜的程式碼,少不了用If執行條件的判斷
在眾多的If判斷式中,最常見的例子莫過於判斷「空白」

以下面的這段為例,判斷people_name 是否為空白

If
people_name = "" Then  Return False

乍看之下這判斷式沒有什麼大問題
但是有經驗的程式設計人員一定覺得這問題可大了,
如果使用者在輸入時不小心或刻意按下空白鍵時,
造成people_name 這參數由「空字串」變成「空隔」,
基本上「空字串」和「空隔」是不同的字元,
比對上的疏忽也就這樣一直藏在程式碼裏面。

接著,大家一定想說用Trim把空隔去掉吧!!

If people_name.Trim = "" Then Return False

這樣的判斷式可以說是完全正確了,不用擔心再有錯誤發生,
但是還有改善的空間,事實上「""」是一個被我們建立的物件,
可以想像如果跑了一萬次的迴圈,那我們豈不是建立了一萬次的""物件。

有更好的作法,就是String.Empty

If people_name.Trim = String.Empty Then Return False
或是用
If String.Empty.Equals(people_name.TrimThen Return False

在msdn的文件中這麼說到:
String.Empty 欄位:表示空字串。這個欄位是唯讀的。

更重要的一點,當我們用String.Empty這欄位時,並不會產生任何的物件。
即時跑了一萬次的迴圈,從頭到尾也是只用到一個String.Empty。

而最有效率的判斷方法是用Trim+Length來比對,如下:

If people_name.Trim.Length=0 Then Return False

arrow
arrow
    全站熱搜

    湯瑪的吳 發表在 痞客邦 留言(0) 人氣()