Skip to content

FUNCTION(成员)


声明或定义返回值的成员过程。

语法

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

TypeClassUnion 的名称。

fieldname

过程的名称。

external_name

外部链接时字段的名称。

parameters

传递给过程的参数。

calling convention specifier(调用约定说明符)

可以是以下之一:CdeclStdcallPascal

描述

使用 Operator . (成员访问)Operator -> (指针成员访问) 访问 Function 成员,以调用返回值的成员过程(也可以通过指定 byref as return_type 返回引用)。该过程可以选择性地接受 byvalbyref 的参数。typename 可以在不显式使用 Overload 关键字的情况下重载。

typename 是为其声明和定义 Function 方法的类型名称。在 Namespace 中使用时,typename 的名称解析规则与过程相同。

一个隐藏的 this 参数(与 typename 具有相同类型)被传递给非静态成员过程。this 用于访问 TypeClassUnion 的字段。

要访问在 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.Day

end GeSHi

方言差异

参见

  • Class
  • Function
  • Sub (Member)
  • Type

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系