Объявление методов
Процедуры
[ STATIC ] { PUBLIC | PRIVATE } { PROCEDURE | SUB }
Идентификатор
(
[ Параметр AS Тип Данных [ , ... ] ] [ , ]
[ OPTIONAL Необязательный Параметр AS Тип Данных [ , ... ] ] [ , ] [ ... ]
)
...
END
Так объявляется процедура, т.е.
метод, который ничего не возвращает.
Ключевым словом
END указано окончание процедуры.
Функции
[ STATIC ] { PUBLIC | PRIVATE } { FUNCTION | PROCEDURE | SUB }
Идентификатор
(
[ Параметр AS Тип Данных [ , ... ] ] [ , ]
[ OPTIONAL Необязательный Параметр AS Тип Данных [ , ... ] ] [ , ] [ ... ]
)
AS Тип Данных
...
END
Так объявляется функция, т. е.
метод, который возвращает значение.
Ключевым словом
END указано окончание функции.
Для функции должен быть указан тип возвращаемого значения.
 |
Разумеется, эти объявления должны быть написаны в одну строчку. Здесь они разбиты на несколько строк лишь для удобства чтения.
|
Используйте ключевое слово
RETURN для того, чтобы прервать выполнение функции и передать возвращаемое значение вызвавшей её программе.
Example
FUNCTION Calc(fX AS Float) AS Float
RETURN Sin(fX) * Exp(- fX)
END
PUBLIC SUB Button1_Click()
PRINT Calc(0);; Calc(0.5);; Calc(1)
END
0 0.290786288213 0.309559875653
Доступ к методу
Метод доступен повсюду внутри
класса, в котором он объявлен.
- Если метод обозначен ключевым словом PUBLIC, то он становится также доступен для других классов, содержащих ссылку на объект этого класса.
- Если метод обозначен ключевым словом STATIC, то для него доступны только статические переменные этого класса.
Аргументы метода
Все аргументы
метода отделяются друг от друга запятыми.
- Если использовано ключевое слово OPTIONAL, то все параметры, следующие после него, являются необязательными. Вы можете указать значение параметра по умолчанию с помощью знака равенства, следующего за объявлением этого параметра.
- Если список параметров оканчивается многоточием (...), то методу могут быть переданы дополнительные аргументы. Каждый из дополнительных аргументов, передаваемых методу доступен через класс Param.
Example
STATIC PUBLIC PROCEDURE Main()
...
PUBLIC FUNCTION Calc(fA AS Float, fB AS Float) AS Float
...
PRIVATE SUB DoIt(sCommand AS String, OPTIONAL bSaveIt AS Boolean = TRUE)
...
STATIC PRIVATE FUNCTION MyPrintf(sFormat AS String, ...) AS Integer