Вопрос

На каждом сайте, где рассказывается о VBScript, '&' operator указан как оператор конкатенации строк.Однако в некотором коде, который я недавно унаследовал, я вижу '+"используется оператор, и я не вижу никаких ошибок в результате этого.Является ли это приемлемой альтернативой?

Это было полезно?

Решение

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

Другие советы

Оператор & amp; выполняет конкатенацию строк, то есть заставляет операнды преобразовываться в строки (например, сначала вызывая для них CStr ). + , в свою очередь, вызывает сложение, если одно из выражений является числовым. Например:

1 & 2

дает вам 12 , тогда как

1 + 2
"1" + 2
1 + "2"

даст вам 3 .

Поэтому рекомендуется использовать & amp; для конкатенации строк, поскольку это устраняет неоднозначность.

Оператор

+ может иметь неприятные последствия, если строки можно интерпретировать как числа. Если вы не хотите неприятных сюрпризов, используйте & amp; объединить строки.

В некоторых случаях + вызовет исключение;например, следующее:

Sub SimpleObject_FloatPropertyChanging(fvalue, cancel)
   'fvalue is a floating point number
   MsgBox "Received Event: " + fvalue
End Sub

Вы получите исключение, когда источник COM-объекта запускает событие - вы должны выполнить одно из следующих действий:

MsgBox "Received Event: " & fvalue

или

MsgBox "Received Event: " + CStr(fvalue)

Возможно, в любом случае лучше всего использовать CStr(value);но использование & в приведенных выше комментариях для конкатенации строк почти всегда является наилучшей практикой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top