【问题标题】:Efficient, multiple variable declaration & assignment in VB.NETVB.NET 中高效的多变量声明和赋值
【发布时间】:2013-11-08 12:36:44
【问题描述】:

作为 VB.NET 的新手,我想知道以下哪项在本质上更有效(时间方面(哪个代码运行得更快)、代码整洁度等。您也可以添加自己的理由)

Dim a, b, c, d As Integer
a = 1
b = 2
c = 3
d = 4

Dim a As Integer = 1
Dim b As Integer = 2
Dim c As Integer = 3
Dim d As Integer = 4

我主要问这个是因为我的代码有太多的Dim 语句并且来自 Python 背景,我从来没有见过这么多的声明(不过我确实需要这些,相信我)。这个可以吗?还是我的编码风格不好?

【问题讨论】:

  • 如果您的代码有“太多的 Dim 语句”,那么也许应该进行重构?没有什么比有一种方法更糟糕的了!
  • 我真的需要这么多变量。它实际上是重构的一部分! :D

标签: vb.net variable-assignment variable-declaration


【解决方案1】:

为了清楚起见,也许每行一个变量对我个人来说更容易查看和更清晰。

我的意思是你可以这样做:

Dim a As Single = 1, b As Single = 2, x As Double = 5.5, y As Double = 7.5

Taken from here.

但此时事情开始变得有些困难。我想这完全是一种偏好!

【讨论】:

  • 伙计,我用vb这么久了,我还不知道!迄今为止最好的答案。
  • 哈哈厉害,4年没用VB了!
【解决方案2】:

两个选项都可以。不过,如果您不满意,那么您可以创建一个数组,因为所有变量都是相同的数据类型。希望有帮助。

【讨论】:

    【解决方案3】:

    运行时性能将相同,因为它们都编译为相同的 IL。

    .locals init ([0] int32 a,
           [1] int32 b,
           [2] int32 c,
           [3] int32 d)
    IL_0000:  ldc.i4.1
    IL_0001:  stloc.0
    IL_0002:  ldc.i4.2
    IL_0003:  stloc.1
    IL_0004:  ldc.i4.3
    IL_0005:  stloc.2
    IL_0006:  ldc.i4.4
    IL_0007:  stloc.3
    IL_0008:  ret
    

    风格方面,我会避免在一行上声明多个变量(如您的第一个示例)。每行一个“概念”更容易阅读 - 因为您不必在视觉上解析逗号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 2011-11-28
      • 1970-01-01
      相关资源
      最近更新 更多