【问题标题】:Is it possible to use Variables without DIM in VB.NET?是否可以在 VB.NET 中使用没有 DIM 的变量?
【发布时间】:2011-07-10 16:19:47
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 不,VB 在今天已经成长为一种真正的语言。昏暗是必需的。
  • @Hans - 不完全正确,但我多么希望是这样。
  • 听起来很像试图通过卸下制动踏板来减轻汽车重量。
  • 你能提供一个你到底想这样做的理由吗?请不要说“这样我就不必时不时地输入 Dim!”
  • peronaly 我使用dim,我只问是否可能,因为在我的一个应用程序中,我使用的是CodeDom,人们可以在其中动态添加自己的vb代码。对于像 c=a+123 这样的简单方程,我不希望用户了解 dims 或变量类型。我想让 codedom 部分尽可能简单,就像在 php 中一样,没有暗淡。 $a=123 就可以了。

标签: vb.net


【解决方案1】:

就@Konrad 所说的而言,他是正确的。答案,埋在他所有的caveat emptors中,是“是”的答案,你完全可以在VB.NET中通过声明Option Explicit Off来做到这一点。也就是说,当您执行a=1 时,变量a 不是Integer - 它是Object 类型。所以,你不能在没有编译器错误的情况下执行c = a + b。您还需要声明Option Strict Off。到那时,你就抛弃了编译器的所有好处。不要这样做。

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

【讨论】:

  • 太棒了。 Option Explicit Off 是我需要的 - 会接受你的答案,这样你就可以得到一些分数,康拉德的答案也是正确的 - 谢谢! :)
  • 嗯,更正:Option Explicit Off 是你认为你需要的。您可能已经注意到,这里的每个人都警告过您不要这样做。
  • @qxxx 正如 Jean-Francois 指出的那样,你只是认为你想要这个。在您花费数小时追查因不想输入额外字符而产生的错误的一天后,您将打开严格、显式打开和推断关闭。
  • 他想制作一种简单的脚本语言,例如旧 Office 产品中的脚本语言。考虑到他应该允许的有限背景,我认为他的要求并没有那么糟糕。
【解决方案2】:

您对 VB 应该如何工作存在根本性的误解。 Dim 声明可以帮助您。您希望忽略它们是错误的。

编译器强制执行变量声明,以便在您意外拼错变量名时发出警告,从而无意中创建了新变量,并且需要强制执行类型安全。如果没有变量声明,VB 代码就会变得难以阅读、无法维护。

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

【讨论】:

    猜你喜欢
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2011-06-03
    • 2023-03-26
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多