在VB.NET中是否可以使用不带DIM的变量?

时间:2011-07-10 16:19:47

标签: vb.net

是否可以在VB.NET中使用变量而无需使用DIM?

现在我必须使用这样的变量:

dim a = 100
dim b = 50
dim c = a + b

我希望能够以这种方式使用变种:

a=100
b=50
c=a+b  'c contains 150

我认为在VB6和更老的VB中这是可能的,但我不确定。

2 个答案:

答案 0 :(得分:7)

你对VB应该如何工作有一个基本的误解。 Dim声明可以帮助您。您想要忽视这些声明是错误的。

编译器强制执行变量声明,以便在您意外拼错变量名称时发出警告,从而无意中创建了一个新变量,并且需要强制执行类型安全。如果没有变量声明,VB代码将成为一个难以理解的,无法维护的混乱。

顺便提一下,在VB6中也是如此,你应该在VB6中使用Option Explicit来使编译器强制你正确使用它们。这个选项在VB.NET中仍然存在但是关闭它有没有优势,并且有很多缺点所以不要这样做 - 相反,学会欣赏显式变量声明,以及所有的帮助编译器正在通过它们。

答案 1 :(得分:6)

就@Konrad说的那样,他是对的。答案,隐藏在他所有的警告中,是“是”的答案,你可以通过声明Option Explicit Off在VB.NET中完全做到这一点。也就是说,当您执行a=1时,变量a不是Integer - 它是Object类型。因此,如果没有编译器错误,则无法执行c = a + b。您还需要声明Option Strict Off。那时,你抛弃了编译器的所有好处。不要这样做。

作为替代方案,使用Option Infer On时,Dim的行为与C#的var关键字相同,如果您尝试节省打字,则会给您带来很多好处。