Значение амперсанда в имени функции VB6?
Я только что получил кучу устаревшего кода VB6 (!), брошенного на меня, и я продолжаю видеть функции, объявленные амперсандом в конце имени, например Private Declare Function ShellExecute& . . .
.
Мне не удалось найти ответ на важность этого, и я не смог обнаружить какой-либо шаблон в использовании или подпись функций, которые были названы таким образом.
Кто-нибудь знает, означают ли эти конечные амперсанды что-либо для компилятора или, по крайней мере, если есть какое-то соглашение, которое мне не хватает? До сих пор я пишу это как странный программист, но я хотел бы точно знать, есть ли смысл в этом.
Ответы
Ответ 1
Это означает, что функция возвращает значение Long (т.е. 32-разрядное целое число).
Это эквивалентно
Declare Function ShellExecute(...) As Long
Полный список суффиксов выглядит следующим образом:
Integer %
Long &
Single !
Double #
Currency @
String $
Ответ 2
Как сказал Филипп Шейр, для типа "Лонг" это тип-идентификатор. Они все еще присутствуют в .Net, см. Ссылку статью VB6
Из второй статьи:
Правила формирования правильного имени переменной VB следующие:
(1) Первым символом должна быть буква от A до Z (в верхнем регистре или могут использоваться строчные буквы). Существенными символами могут быть буквы, цифры или символ подчеркивания (_) (без пробелов или других символов допускается).
(2) Конечным символом может быть "символ объявления типа". Только некоторые из типов переменных могут использовать их, как показано ниже:
Data Type Type Declaration Character
String $
Integer %
Long &
Single !
Double #
Currency @
Использование декларации типа символы в VB не поощряются; современный стиль - использовать Предложение "Как" в заявлении о декларации данных.