属性声明

PROPERTY [ READ ] Identifier AS Datatype

声明一个类的属性。

如果指定 READ 关键字,属性将是只读的。

一旦声明,属性必须生效:必须写一个读取该属性的函数,并且如果该属性不是只读的,还要写一个写入该属性的函数。

读属性的函数名是:属性名_Read。该函数没有参数,而且必须返回一个类型与属性数据类型相同的数据。

写属性的函数名是:属性名_Write。该函数是无返回值的过程,而且只有一个类型与属性数据类型相同的参数。

Examples

PROPERTY Enabled AS Boolean
PROPERTY READ Handle AS Integer
...

PRIVATE $bEnabled AS Boolean
PRIVATE $iHandle AS Integer

' Enabled属性生效

FUNCTION Enabled_Read() AS Boolean

  RETURN $bEnabled

END

SUB Enabled_Write(bEnabled AS Boolean)

  $bEnabled = bEnabled
  UpdateEverything

END

' Handle属性生效

FUNCTION Handle_Read() AS Integer

  RETURN $iHandle

END

属性同义词

PROPERTY [ READ | WRITE ] Identifier [ , Synonymous1 [ , Synonymous2 ... ] ] AS Datatype

自从 3.1

通过使用第二种语法,最多可以声明三个与声明的属性同义的属性。

属性快捷方式

PROPERTY [ READ | WRITE ] Identifier AS Datatype USE Variable

自从 3.14

此语法声明一个全局私有变量 Variable ,该变量将用于实现 Identifier 属性。

Property Name As String Use $sName

完全等效于:

Property Name As String
Private $sName As String

Private Sub Name_Read() As String
  Return $sName
End

Private Sub Name_Write(Value As String)
  $sName = Value
End

如果需要,可以重写 ReadWrite 或两种默认属性方法:

Property Name As String Use $sName

Private Sub Name_Write(Value As String)

  If Not Value Then Error.Raise("Incorrect name")
  $sName = Value

End

参见