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

时间:2009-01-20 10:48:36

标签: vb.net

在VB.Net中,以下三种初始化对象变量的方法之间存在任何差异

方法1

Dim commandObject As SqlCommand 
commandObject = New SqlCommand("MadeUpCommand")

方法2

Dim commandObject As SqlCommand = New SqlCommand("MadeUpCommand")

方法3

Dim commandObject As New SqlCommand("MadeUpCommand")

一个人比其他人更有效率,还是他们实际上都是一样的?

3 个答案:

答案 0 :(得分:5)

3种方法之间产生的IL没有差异。

答案 1 :(得分:1)

方法1和2实际上是相同的。方法1显然在对分配的单独语句中声明了对象,但是如果代码中的2行彼此相邻,那么它实际上也与方法2和3相同。在这种情况下,我总是使用方法3,因为它是必须的succint。正如达林所说,它们都会产生相同的IL。

当声明和赋值要求具有不同的范围时,我只会使用方法1,例如赋值在If块内完成,值需要在该块之外进行测试。

答案 2 :(得分:1)

(2)和(3)是等价的。我希望(1)被优化为等效(即使有其他局部变量/实例化)

我见过的大多数编码标准建议在声明点初始化变量,并且声明的点尽可能接近首次使用。

当然,在VB.Net 2及更高版本中,我更愿意看到

    Using commandObject As New SqlCommand("MadeUpCommand")
        ' Etc.
    End Using