指定此属性的初始值。
用法要指定此属性的初始值,请使用以下语法:
Property name As classname [ InitialExpression = initialexpression ];
其中,initialexpression
是用大括号括起来的常量或ObjectScript表达式。
此关键字指定属性的初始值。该值是在创建新实例时由类的%New()
方法分配的。(如果属性是瞬态的的,则其初始值由创建实例时%New()
调用的代码或实例从磁盘加载到内存时%OpenId()
调用的代码确定。)
初始表达式的值必须适合给定的属性类型。
表达式可以是任意复杂的,有以下限制:
- 初始表达式不能引用其他属性。也就是说,诸如{
..therPropertyname
}这样的表达式无效。 - 初始表达式不能实例化对象,也不能包括对象引用。
- 初始表达式不能调用实例方法(只能调用类方法)。
- 必须在ObjectScript中指定初始表达式。
- 表达式执行的代码不应报告错误。InterSystems IRIS不提供处理表达式返回的错误的方法。
- 如果表达式执行的代码导致发生其他处理,则InterSystems IRIS不提供处理该处理结果的方法。
子类继承InitialExpression
关键字的值并可以重写它。
InitialExpression
关键字的默认值为NULL
。
下面显示了几个使用ObjectScript表达式的示例:
Property DateTime As %Date [ InitialExpression = {$zdateh("1966-10-28",3)} ];
Property MyString As %String [ InitialExpression = {$char(0)} ];
/// 此参数使用参数值进行初始化
Property MyProp As %String [ InitialExpression = {..#MYPARM} ];
/// 这是由一个类方法初始化的
Property MyProp2 As %Numeric [ InitialExpression = {..Initialize()} ];