2010年11月3日 星期三

[VB] 跟IIf說再見~

VB.Net在VS2005有個函數叫IIf
簡單舉例用法如下:
Dim age As Integer = 18
MsgBox(IIf(age >= 18, "可看限制級", "不可看限制級"))
此例即是輸出判斷式為真的"可看限制級"

不過IIf其實在VS2008是不建議使用的
建議改以效率較佳的If替代
因為IIf不論判斷式為真或假,皆會去運算後面的兩個內容
這樣除了效率較差,亦有可能會產生錯誤
而If則只運算符合判斷式的內容
舉個例子最快~
Dim a As Integer = 4
Dim b As Integer = 0
MsgBox(If(True, a, a \ b))
Dim a As Integer = 4
Dim b As Integer = 0
MsgBox(IIf(True, a, a \ b))
前者用If,因為判斷式為true,所以不會去運算後面的 4 \ 0
而IIf即便為true,也一樣會去運算 4 \ 0而導致發生錯誤

沒有留言:

張貼留言