FUNCTION(成员)
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgMemberFunction
- 最后更新: 2021-09-28
声明或定义返回值的成员过程。
语法
vb
{ 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参数
typename
Type、Class 或 Union 的名称。
fieldname
过程的名称。
external_name
外部链接时字段的名称。
parameters
传递给过程的参数。
calling convention specifier(调用约定说明符)
可以是以下之一:Cdecl、Stdcall 或 Pascal。
描述
使用 Operator . (成员访问) 或 Operator -> (指针成员访问) 访问 Function 成员,以调用返回值的成员过程(也可以通过指定 byref as return_type 返回引用)。该过程可以选择性地接受 byval 或 byref 的参数。typename 可以在不显式使用 Overload 关键字的情况下重载。
typename 是为其声明和定义 Function 方法的类型名称。在 Namespace 中使用时,typename 的名称解析规则与过程相同。
一个隐藏的 this 参数(与 typename 具有相同类型)被传递给非静态成员过程。this 用于访问 Type、Class 或 Union 的字段。
要访问在 Type 外部作为全局定义的重复符号,请添加一个或最好两个点作为前缀:.SomeSymbol 或最好是 ..SomeSymbol(或在 With..End With 块内只用 ..SomeSymbol)。
可以使用 Static 说明符声明 Static(成员)。可以使用 Const 说明符声明 Const(成员)。
与普通 Function 一样,调用代码中可以忽略 Function 成员的返回值。
示例
start GeSHi
vb
#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.Dayend GeSHi
方言差异
- 仅在 -lang fb 方言中可用。
参见
ClassFunctionSub (Member)Type
返回 目录