Sub (элемент)
 
Объявляет и определяет процедуру-элемент.

Синтаксис

{ Type | Class | Union } typename
Declare [ Static | Const ] Sub fieldname [calling convention specifier] [ Alias external_name ] ( [ parameters ] ) [ Static ]
End { Type | Class | Union }

Sub typename.fieldname ( [ parameters ] )
statements
End Sub

Параметры

typename
имя Type, Class, или Union
fieldname
имя процедуры
external_name
имя поля, которое видно для внешней линковки
parameters
передаваемые в процедуру параметры
calling convention specifier
может быть одним из: cdecl, stdcall или pascal

Описание

Обращение к Sub как элементу осуществляется с помощью Оператора . (Доступ к элементу) или Оператора -> (Доступ по указателю к элементу) . Процедура-элемент может при необходимости принимать параметры , переданные по ByVal или ByRef. typename перегружены без явного использования ключевого слова Overload.

typename - это имя типа, для которого метод Sub объявлен и определен. Разрешение имен для typename следует тем же правилам процедуры, как при использовании в Namespace.

Скрытый параметр This имеет тот же тип typename передаваемый нестатической процедуре-элементу. This используется для доступа к полям Type, Class, или Union.

Static (элемент) может быть объявлен с помощью спецификатора Static.  Const (элемент) может быть объявлен с помощью спецификатора Const.

Пример

Type Statistics
  count As Single
  sum As Single
  Declare Sub AddValue( ByVal x As Single )
  Declare Sub ShowResults( )
End Type

Sub Statistics.AddValue( ByVal x As Single )
  count += 1
  sum += x
End Sub

Sub Statistics.ShowResults( )
  Print "Number of Values = "; count
  Print "Average          = ";
  If( count > 0 ) Then
    Print sum / count
  Else
    Print "N/A"
  End If
End Sub

Dim stats As Statistics

stats.AddValue 17.5
stats.AddValue 20.1
stats.AddValue 22.3
stats.AddValue 16.9

stats.ShowResults

Вывод:
Number of Values =  4
Average          =  19.2

Различия диалектов

  • Доступно только в диалекте -lang fb.

См. также