Объявление методов

Процедуры

[ 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
6.773333333333

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.

Смотри также