Class
定义类。类是创建对象的模板——类是对象类型,与值类型相对。对象通过引用持有并采用引用计数。当不再有引用指向对象时——即进程中没有变量引用它们时——对象占用的内存会被释放。
语法:
[ attributes ]
[ Public | Private ] Class name [ ( Of typevars ) ]
[ Inherits baseclass ]
[ classmember ]
[ classmember ] ...
End Class
- attributes
可选 以下一个或多个:
ArrayBoundsChecks、ClassId、COMCreatable、CustomControl、Description、FloatingPointErrorChecks、FormDesignerId、Hidden、IntegerOverflowChecks、PredeclaredID- Public
可选 (twinBASIC) 在ActiveX项目中,将类标记为导出到类型库,使其他项目的使用者可以创建和使用它。
- Private
可选 (twinBASIC) 在ActiveX项目中,不将类导出到类型库:它在项目内仍可使用但不导出。与 CoClass 的常规搭配——一个公共 CoClass 作为使用者可见的契约,配对一个
Private Class作为隐藏的实现——依赖此修饰符。- name
命名类的标识符。
- Of typevars
可选 (twinBASIC) 一个或多个用逗号分隔的类型变量名,使类成为泛型类。每个类型变量可以在成员声明中像常规类型一样被引用。参见泛型。
- Inherits baseclass
可选 (twinBASIC) 指定一个基类,其 Public 和 Protected 成员被 name 继承。Inherits 行(如果存在)必须紧跟在 Class 头部之后、任何其他成员之前。Inherits 启用 Overridable / Overrides 成员、从
Sub New内部的显式*baseclass*.New(...)链式构造函数调用,以及 Protected 成员可见性。参见继承。- classmember
可选 以下任意项:
在 .twin 文件中,Class 块可以与 Interface、CoClass 和 Alias 声明(出现在 Class 块之前)以及 Module 块共享同一文件。在传统 .cls 文件中,类是隐式的,不写 Class/End Class 关键字。