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
TypeClassUnion的名称
fieldname
程序名称
external_name
外部链接时看到的字段名称
parameters
要传递给程序的参数
calling convention specifier
可以是以下之一:cdeclstdcallpascal

说明

Function成员使用操作符 . (成员访问)操作符 -> (访问成员指针)访问,以调用返回值的成员过程(也可以通过指定Byref As return_type 返回引用)。该过程可以可选地接受参数ByValByRef.typename 在没有明确使用Overload关键字的情况下被重载。

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

typename 具有相同类型的隐藏This参数传递给非静态成员过程。This用于访问TypeClassUnion的字段。

可以使用Static说明符声明Static (成员).可以使用Const说明符声明Const (成员).

对于正常的FunctionFunction成员的返回值在调用代码中可以忽略。

例子

#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 "年="; d.Year
Print "月="; d.Month
Print "天="; d.Day



方言差异

参考