2009-01-20 2 views
4

В 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") 

Является ли еще эффективнее других, или они все равно одинаковы?

ответ

5

Нет разницы в сгенерированном ИЛ между тремя методами.

1

Методы 1 и 2 фактически одинаковы. Метод 1, очевидно, объявляет объект в отдельном выражении назначению, но если две строки находятся рядом друг с другом в коде, то он также фактически аналогичен методам 2 и 3. В этом случае я всегда буду использовать метод 3, поскольку он является обязательным сукцином. Как говорит Дарин, все они генерируют один и тот же ИЛ.

Я использовал бы только метод 1, когда декларация и назначение должны иметь разную область видимости, например. назначение выполняется в блоке If, и значение должно быть проверено вне этого блока.

1

(2) и (3) эквивалентны. Я надеюсь, что (1) будет оптимизирован так, чтобы быть эквивалентным (даже если есть другие локальные переменные/экземпляры)

Большинство стандартов кодирования, которые я видел, предлагают иметь переменную, инициализированную в точке объявления, а также иметь точку объявления как можно ближе к первому использованию.

Конечно, в VB.Net 2 и позже, я бы предпочел, чтобы увидеть

Using commandObject As New SqlCommand("MadeUpCommand") 
     ' Etc. 
    End Using 
Смежные вопросы