Help Center
Help CenterFreeBASIC

Function (Member)member

Declares or defines a member procedure returning a value

User Defined Typesmemberdocumented

Syntax

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

Parameters

NameDescription
typenamename of the Type, Class, or Union
fieldnamename of the procedure
external_namename of field as seen when externally linked
parametersthe parameters to be passed to the procedure
calling convention specifiercan be one of: cdecl, stdcall or pascal

Description


Function members are accessed with Operator . (Member Access) or Operator -> (Pointer To Member Access) to call a member procedure that returns a value (a reference can also be returned by specifying Byref As return_type). The procedure may optionally accept parameters either ByVal or ByRef. typename be overloaded without explicit use of the Overload keyword.

typename is the name of the type for which the Function method is declared and defined. Name resolution for typename follows the same rules as procedures when used in a Namespace.

A hidden This parameter having the same type as typename is passed to non-static member procedures. This is used to access the fields of the Type, Class, or Union.
To access duplicated symbols defined as global outside the Type, add one or preferably two dot(s) as prefix: .SomeSymbol or preferably ..SomeSymbol (or only ..SomeSymbol if inside a With..End With block).

A Static (Member) may be declared using the Static specifier. A Const (Member) may be declared using the Const specifier.

As for a normal Function, the return value of a Function member can be ignored in the calling code.

Remarks

Dialect Differences


  • Only available in the -lang fb dialect.

See also


Example


#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


Reference

  • Documented in KeyPgMemberFunction.html