Function (элемент)
 
Объявляет и определяет функцию-элемент, возвращающую значение.

Синтаксис

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

Function typename.fieldname ( [ parameters ] ) As datatype
statements
End Function

Параметры

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

Описание

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

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

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

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

Пример

#include "vbcompat.bi"

Type Date

  value As Double

  Declare Static Function Today() As Date

  Declare Function Year() As Integer
  Declare Function Month() As Integer
  Declare Function Day() As Integer

End Type

Function Date.Today() As Date
  Return Type(Now())
End Function

Function Date.Year() As Integer
  Return ..Year(value)
End Function

Function Date.Month() As Integer
  Return ..Month(value)
End Function

Function Date.Day() As Integer
  Return ..Day(value)
End Function

Dim d As Date = Date.Today

Print "Year  = "; d.Year
Print "Month = "; d.Month
Print "Day   = "; d.Day



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

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

См. также