2010-07-29 5 views

ответ

4

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

Там есть запись MSDN о Concatenation operations in Visual Basic, которая объясняет это:

& Оператор (Visual Basic) определяется только для строковых операндов, и он всегда расширяет свои операнды строки, независимо от значения Option Strict , Оператор & рекомендуется для конкатенации строк, поскольку он определен исключительно для строк и снижает ваши шансы на создание непреднамеренного преобразования.

+3

. Выражения не совпадают даже со строками, если одно из значений равно null. – Fionnuala

+0

Статья MSDN о Visual Basic, но я думаю, что это работает также и в VBA? Нет страницы документации VBA или нет? –

2

Эти два выражения эквивалентны, но операторы не являются. + может использоваться как арифметический оператор, так и для конкатенации строк, & может использоваться только для последнего.

+0

ОК, то почему у вас есть и вообще? –

+0

Они отличаются друг от друга, см. ['+' Operator] (http://msdn.microsoft.com/en-us/library/9c5t70w2%28v=VS.80%29.aspx) и ['&' operator] (http://msdn.microsoft.com/en-us/library/wfx50zyk%28v=VS.80%29.aspx). –

+0

Рассмотрите нулевое значение, связанное со строкой, используя + – Fionnuala