我问“你学过vb.net吗?”
你说:“学过,而且用的特别熟!”
我问:“那你知道vb.net的短路概念吗?”
你会说:“当然了,不就是逻辑与或上那些#$%^&*?......”
我说:“对,就是那些东西!我给你一段程序看看你能搞定吗?”
“No problem !”you said 。
下面是段程序,很简单,看你能不能搞定。
If Not Equals(txtAge.Text, String.Empty) And CInt(txtAge.Text) > 100 Then
Debug.WriteLine("ok")
End If
构造你自己的程序,把这段代码加上,然后把你的txtAge文本框清空,运行一千遍!
BT?运行一千遍?
^_^,当然不需要那么多,只需几十遍就可以!
大家预测一下会出现什么情况!
thinking...
"show ok ?"你试探着说!
我只能说你自己运行程序吧!我没有办法说你说的是正确的还是错误!
你很不耐烦的构造了程序,然后按下了F5 。
嘿嘿!我只能看着你笑了!
why ?why ?你可能不理解,为什么会弹出一个对话框,是转型错误!
这就是我想看到的结果!
没错,这是正确的,出现这个错误是正确的。
你满怀疑惑地看着那个带着红色图标的对话框,wondering......
"不应该啊!怎么会这样?"你小声嘀咕着!
我要告诉你,这个错误的对话框是真实的,不是vs的bug!
那莫非书上说的短路是#@!8&^%^%]*&%^$#@!8&^%^%?
不!因为vb.net里有个东西,叫AndAlso !
我还没说完你就明白了!^_^
在vb.net里有两个比较特殊的逻辑运算符,一个是前面的AndAlso,另一个是OrElse 。
请记住,这两个才遵循短路算法 !
Understand ?