Объявление методов
Процедуры
[ STATIC ] { PUBLIC | PRIVATE } { PROCEDURE | SUB }
Идентификатор
(
[ [ BYREF ] Параметр AS Тип Данных [ , ... ] ] [ , ]
[ OPTIONAL [ BYREF ] Необязательный Параметр AS Тип Данных [ , ... ] ] [ , ] [ ... ]
)
...
END
Так объявляется процедура, т.е. , который ничего не возвращает.
Ключевым словом
END указано окончание процедуры.
Функции
[ STATIC ] { PUBLIC | PRIVATE } { FUNCTION | PROCEDURE | SUB }
Идентификатор
(
[ [ BYREF ] Параметр AS Тип Данных [ , ... ] ] [ , ]
[ OPTIONAL [ BYREF ] Необязательный Параметр AS Тип Данных [ , ... ] ] [ , ] [ ... ]
)
AS Тип Данных
...
END
Так объявляется функция, т. е. , который возвращает значение.
Ключевым словом
END указано окончание функции.
Для функции должен быть указан тип возвращаемого значения.
Разумеется, эти объявления должны быть написаны в одну строчку. Здесь они разбиты на несколько строк лишь для удобства чтения.
Используйте ключевое слово
RETURN для того, чтобы прервать выполнение функции и передать возвращаемое значение вызвавшей её программе.
Examples
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.
Examples
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
Arguments Passed By Reference
When the
BYREF
keyword is specified, the argument must be an assignment expression that will be modified by the called function.
Examples
SUB ConvPixelToCentimeter(BYREF Value as Float, Dpi AS Integer)
Value = Value / Dpi * 2.54
END
PUBLIC SUB Main()
DIM Size AS Float
Size = 256
ConvPixelToCentimeter(BYREF Size, 96)
PRINT Size
END
If you do not specify BYREF at function call, then the argument is passed by value, even if BYREF was specified at function declaration.
In other words: the called function
allows an argument to be passed by reference, whereas the caller
decides it.
Смотри также