Calculated (プロパティ・キーワード)
使用法
プロパティにメモリ内ストレージを割り当てないことを指定するには、以下の構文を使用します。
Property name As classname [ Calculated ];
そのように指定しない場合は、このキーワードを省略し、キーワードの直前に単語 Not を指定します。
詳細
このキーワードは、このプロパティを含むオブジェクトがインスタンス化される際に、プロパティにメモリ内ストレージを割り当てないことを指定します。
メモリ内ストレージが必要ないプロパティを定義するときに、このキーワードを使用します。このプロパティに値を指定する方法には、次の 2 つがあります。
-
プロパティのための Get (場合によっては、Set) メソッドを定義します。例えば、Age プロパティの場合は、AgeGet メソッドを提供することで、ある人物の現在の年齢を、現在日時、およびその人物の DateOfBirth プロパティの値に基づいて判断できます。"プロパティ・メソッドの使用とオーバーライド" を参照してください。
-
このプロパティを計算プロパティとして定義します。これにより、SqlComputed キーワードおよび関連キーワードが使用されます。"計算プロパティの定義" を参照してください。
サブクラスは Calculated キーワードを継承しますが、それをオーバーライドできません。
SQL テーブルのインデックスに、Calculated キーワードを持つプロパティを含めるには、SqlComputed キーワードと SqlComputeCode キーワードも指定する必要があります。Calculated プロパティでインデックスを持つクラスをコンパイルする場合、このプロパティに SqlComputed キーワードと SqlComputeCode キーワードも指定しないと、システムは次のエラー・メッセージを返します。
ERROR #5414: Invalid index attribute: <classname>::<indexname>::<propertyname>
ERROR #5030: An error occurred while compiling class <classname>
既定値
Calculated キーワードの既定値は、False です。
例
Property Age as %Integer [ Calculated ];