Значение амперсанда в названии функции 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 в операторе объявления данных.

Другие вопросы по тегам