在VB.Net中初始化对象变量

4
在 VB.Net 中,初始化对象变量有以下三种方法。方法1:
Dim commandObject As SqlCommand 
commandObject = New SqlCommand("MadeUpCommand")

方法二
Dim commandObject As SqlCommand = New SqlCommand("MadeUpCommand")

方法三

Dim commandObject As New SqlCommand("MadeUpCommand")

有一个更高效的选择吗,还是它们在效率上基本相同?
3个回答

5

这三种方法生成的IL代码没有区别。


1

方法1和方法2实际上是相同的。方法1显然在声明对象时与赋值分开,但如果这两行代码相邻,则与方法2和3的效果相同。在这种情况下,我总是使用方法3,因为它更加简洁。正如Darin所说,它们都生成相同的IL。

只有在声明和赋值需要具有不同作用域时,例如赋值在If块内完成并且需要在该块外测试值时,才会使用方法1。


1
(2)和(3)是等效的。我希望(1)也能被优化成等效的(即使有其他本地变量/实例化)
我看过的大多数编码标准都建议在声明时初始化变量,并尽可能靠近首次使用的位置。
当然,在VB.Net 2及更高版本中,我更喜欢看到
    Using commandObject As New SqlCommand("MadeUpCommand")
        ' Etc.
    End Using

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接