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