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

Mil*_*ike 0 vb.net

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

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

dim a = 100
dim b = 50
dim c = a + b
Run Code Online (Sandbox Code Playgroud)

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

a=100
b=50
c=a+b  'c contains 150
Run Code Online (Sandbox Code Playgroud)

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

Kon*_*lph 7

你对VB应该如何工作有一个基本的误解.Dim声明是有帮助你.你想要忽视他们的愿望是错误的.

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

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


mat*_*mc3 6

就@Konrad说的那样,他是对的.答案,埋没在他所有的警告中,是"是"的答案,你可以通过声明在VB.NET中完全做到这一点Option Explicit Off.也就是说,当你这样做时a=1,变量a不是Integer- 它是一种Object类型.所以,你不能c = a + b没有编译器错误.你还需要申报Option Strict Off.那时,你抛弃了编译器的所有好处.不要这样做.

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

  • 嗯,更正:`Option Explicit Off`就是你想要的*.您可能已经注意到,这里的每个人都警告过您不要这样做. (5认同)
  • 他想制作一种简单的脚本语言,例如在旧的 Office 产品中使用的脚本语言。考虑到他应该允许的有限上下文,我认为他的要求并没有那么糟糕。 (2认同)