以 VB.NET 为例,
注意两个选项: Option Explicit 和 Option Strict
前者表示,每个变量要先声明才能使用。
后者,则对隐式类型转换有一定的要求。
另外,在项目属性页里的 Warning Configuration 下,还有一个 "Implicit Conversion" 选项。
默认情况下,这些选项设置的比较宽松。这样带来的恶果是,很多 VB 程序员可以说毫无数据类型的概念,代码里胡乱写,这样把很多明明是编译期可以解决的 bug, 带到了运行期。不得不说,这是不可饶恕的。
在这种宽松的设定下,我见到了太多应该被拖出去重重的打屁股的代码:
If (System.Convert.ToString(dr("Column1")) = 0)
这里很荒谬的把一个 String 直接和 Integer 类型进行比较。。。
Session("cID") = CInt(lblSomeID.Text + 1)
这个代码更是地雷中的地雷。类型的概念极其混乱,胡乱转换,毫无章法。
我想要说的是,VB经过多年的发展,到现在的 VB9, 10, 已经是一门非常强大的语言。从语言的角度上讲,也许 VB 对程序员比较宽容。但程序员不应该把这个当成一种福利,而放松对自己的要求,类型概念不搞清楚就乱写代码,否则被骂终究是难免的。