InitialExpression (プロパティ・キーワード)
使用法
このプロパティの初期値を指定するには、以下の構文を使用します。
Property name As classname [ InitialExpression = initialexpression ];
initialexpression は、中括弧で囲まれた、定数または ObjectScript 式です。
詳細
このキーワードは、プロパティの初期値を指定します。新規のインスタンスが生成される際に、そのクラスの %New() メソッドが、この値を割り当てます (プロパティが一時的な場合、その初期値は、インスタンスが生成される際に %New() によって実行されるコード、または、インスタンスがディスクからメモリにロードされる際に %OpenId() によって実行されるコードのいずれかによって決定されます)。
初期値式の値は、特定のプロパティ・タイプに適したものとする必要があります。
どのような複雑な式でも指定できますが、以下の制限があります。
-
初期値式は他のプロパティを参照できません。つまり、{..otherpropertyname} のような式は無効です。
-
初期値式はオブジェクトをインスタンス化できず、オブジェクト参照を含むことができません。
-
初期値式は、インスタンス・メソッドを呼び出すことができません (クラス・メソッドのみ)。
-
初期表現は 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)} ];
/// this one is initialized with the value of a parameter
Property MyProp As %String [ InitialExpression = {..#MYPARM} ];
/// this one is initialized by a class method
Property MyProp2 As %Numeric [ InitialExpression = {..Initialize()} ];