日期:2011-12-08  浏览次数:20525 次

我问“你学过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&^%^%?

不!因为vb.net里有个东西,叫AndAlso !

我还没说完你就明白了!^_^

在vb.net里有两个比较特殊的逻辑运算符,一个是前面的AndAlso,另一个是OrElse 。

请记住,这两个才遵循短路算法 !

Understand ?