在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")
一个人比其他人更有效率,还是他们实际上都是一样的?
答案 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