Амперсанд по сравнению с плюс для конкатенации строк в VB.NET [дубликат]

53
задан Peter Mortensen 18 March 2013 в 22:44
поделиться

5 ответов

Я слышал веские, веские аргументы в пользу обоих операторов. Какой аргумент победит, во многом зависит от вашей ситуации. Единственное, что я могу сказать, это то, что вы должны стандартизировать одно или другое. Код, который смешивает эти два понятия, позже вызовет путаницу.

Два аргумента, которые я сейчас запомнил в пользу и :

  • Если вы не используете Option Strict и имеете две числовые строки, компилятор легко перепутает ваше значение оператора + с, вы знаете, арифметическим сложением
  • Если вы обновляете много старого кода эпохи vb6, это помогает не преобразовывать операторы конкатенации (и помните: мы хотим последовательности).

И для + :

  • Если у вас смешанный магазин vb / C #, хорошо иметь только один оператор конкатенации. Это упрощает перемещение кода между языками и означает гораздо меньшее переключение контекста для программистов при переходе между языками
  • и почти уникальны для VB, а + между Строки понимаются на многих языках как конкатенация, поэтому вы получаете кое-что в удобочитаемости.
41
ответ дан 7 November 2019 в 08:34
поделиться

Micorosoft's предпочтение для VB-программистов использовать & для строк, НЕ +.

Вы также можете использовать оператор + для конкатенации строк. Однако, чтобы исключить двусмысленность, вместо него следует использовать оператор &.

41
ответ дан 7 November 2019 в 08:34
поделиться

Я предпочитаю использовать & для конкатенации строк в VB.NET

Одна из причин этого - избежать путаницы, например

MessageBox.Show(1 & 2) ' "12"
MessageBox.Show(1 + 2) ' 3
13
ответ дан 7 November 2019 в 08:34
поделиться

Я полагаю, что это исторически (в Visual Basic без .NET используется &, не знаю, почему они ввели +) и дело вкуса (я предпочитаю &, потому что мы конкатенируем строки, а не складываем их...).

5
ответ дан 7 November 2019 в 08:34
поделиться

Это безопаснее использовать, так как вы ясно даете понять компилятору свое намерение (я хочу объединить эти два значения, и оба они должны быть преобразованы в строки).

Использование + может затруднить поиск ошибок, если строки являются числовыми значениями, по крайней мере, если опция strict отключена.

Например:

1 + "1" = 2 ' this fails if option strict is on
1 & "1" = 11

Изменить: хотя, если вы объединяете не-строку, вам, вероятно, в любом случае следует использовать какой-нибудь лучший метод.

10
ответ дан 7 November 2019 в 08:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: