Что разница между:VBA: разница между & и +
string1 + string2
и
string1 & string2
ли они эквивалентны? Почему два разных символа делают одно и то же?
Что разница между:VBA: разница между & и +
string1 + string2
и
string1 & string2
ли они эквивалентны? Почему два разных символа делают одно и то же?
Выражения такие же, пока операнды являются строками; если нет, то +
может добавить их вместо них в зависимости от преобразования типов. &
гарантирует, что вы не получите ничего, кроме конкатенации строк, и, если возможно, конвертируете операнды в строки.
Там есть запись MSDN о Concatenation operations in Visual Basic, которая объясняет это:
& Оператор (Visual Basic) определяется только для строковых операндов, и он всегда расширяет свои операнды строки, независимо от значения Option Strict , Оператор & рекомендуется для конкатенации строк, поскольку он определен исключительно для строк и снижает ваши шансы на создание непреднамеренного преобразования.
Эти два выражения эквивалентны, но операторы не являются. +
может использоваться как арифметический оператор, так и для конкатенации строк, &
может использоваться только для последнего.
ОК, то почему у вас есть и вообще? –
Они отличаются друг от друга, см. ['+' 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). –
Рассмотрите нулевое значение, связанное со строкой, используя + – Fionnuala
. Выражения не совпадают даже со строками, если одно из значений равно null. – Fionnuala
Статья MSDN о Visual Basic, но я думаю, что это работает также и в VBA? Нет страницы документации VBA или нет? –