Эффективное объявление и назначение нескольких переменных в VB.NET

Будучи новичком в VB.NET, я хотел бы знать, что из следующего более эффективно по своей природе (с точки зрения времени (какой код работает быстрее), с точки зрения аккуратности кода и т. д. вы можете добавить тоже свои причины)

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

OR

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

В основном я спрашиваю об этом, потому что в моем коде слишком много операторов Dim, и они исходят из фона Python, я никогда не видел так много объявлений (хотя они мне нужны, поверьте мне). Это нормально? Или я кодирую в плохом стиле?


person shad0w_wa1k3r    schedule 08.11.2013    source источник
comment
ЕСЛИ в вашем коде слишком много выражений Dim, возможно, следует провести рефакторинг? Нет ничего хуже, чем иметь метод, в котором слишком много всего происходит!   -  person Ric    schedule 08.11.2013
comment
Мне действительно нужны эти многие переменные. На самом деле это часть рефакторинга! :D   -  person shad0w_wa1k3r    schedule 08.11.2013


Ответы (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

С точки зрения стиля я бы не стал объявлять несколько переменных в одной строке (как в вашем первом примере). Одно «понятие» в строке легче читать, так как вам не нужно визуально разбирать запятые.

person nunzabar    schedule 08.11.2013

Для ясности, пожалуй, по одной переменной в строке с присваиванием лично мне смотреть проще и намного нагляднее.

Я имею в виду, что вы можете сделать это:

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

Взято отсюда.

Но в этот момент все начинает выглядеть немного сложно. Я полагаю, это полностью предпочтение!

person Ric    schedule 08.11.2013
comment
Чувак, я так долго использовал vb, и я не знал этого! Лучший ответ на сегодняшний день. - person γηράσκω δ' αεί πο; 07.01.2019
comment
Ха-ха, молодец, не использовал VB уже 4 года! - person Ric; 31.01.2019

Оба варианта в порядке. Тем не менее, если вы недовольны, вы можете создать массив, поскольку все переменные имеют одинаковые типы данных. Надеюсь, это поможет.

person DHUNPUT KHEMRAJ    schedule 07.10.2015