& -> Long
% -> Integer
# -> Double
! -> Single
@ -> Decimal
$ -> String
Все еще существует в VB.Net ради обратной совместимости...
Ответ 2
В "классическом" VB существовали две версии встроенных встроенных функций. Позвольте мне использовать Left в качестве примера:
Left(s, length) принимает вариант в качестве первого параметра и возвращает вариант.
Left$(s, length) берет строку в качестве первого параметра и возвращает строку.
Это различие все еще существует в современном VBA.
Я подозреваю, что причина этого в том, что строки в VBA не могут быть Null (обратите внимание, что Null <> ""). Таким образом, при работе с полями NULL базы данных вам приходилось использовать переменные варианта. Переменные переменных могут принимать любое значение, включая все интегральные значения (строки, целые числа,...), а также некоторые специальные значения, такие как Null, Empty или Missing. Функции non $позволили вам использовать варианты в качестве входных данных и получить варианты в качестве вывода. Например, Left(Null, ...) возвращает Null.
В VB.NET это разграничение больше не нужно: функции не-$ выполняют точно так же, как и $-функции, которые сохраняются только для обратной совместимости со старым кодом.
Ответ 3
Что сказал Хайнци и прояснил бизнес-характер типа
Dim s$ = "FooBar" 'dim s as String = "FooBar"
Dim r As String
Stop
r = Replace$(s, "Bar", "")
'.Net equivalent
r = s.Replace("Bar", "")