このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
動的プロパティの Set メソッドおよび Get メソッド
追加のクラス メソッドを作成せずに、動的プロパティの set アクセス メソッドまたは get アクセス メソッドを定義できます。アクセス メソッドの使用に関する一般的な情報については、プロパティ アクセス メソッドを参照してください。
動的プロパティのアクセス メソッドの作成
以下の手順に従って、プロパティのアクセス メソッドを作成します。
プロパティの設定または取得が行われる前に実行する操作を実装する関数を定義します。これらのメソッドは、以下のシグネチャをもたなければなりません。
mySet(obj,val)
またはval = myGet(obj)
動的プロパティの対応する
meta.DynamicProperty
オブジェクトを取得します。meta.DynamicProperty
オブジェクトのGetMethod
またはSetMethod
プロパティに、set または get プロパティ関数を参照する関数ハンドルを代入します。この関数は、クラスのメソッドである必要はありません。set.
のような命名規則は使用できません。代わりに、他の有効な関数名を使用します。PropertyName
動的プロパティの定義で作成した button
クラスの myCoord
動的プロパティに対して、プロパティの関数 set を作成するとします。
以下のように関数を記述します。
function set_myCoord(obj,val) if ~(length(val) == 2) error('myCoords require two values') end obj.myCoord = val; end
button
は handle
クラスであるので、プロパティの関数 set はオブジェクトを出力引数として返す必要はありません。
meta.DynamicProperty
オブジェクトを取得するには、handle
クラスのメソッド findprop
を使用します。
mb1 = b1.findprop('myCoord');
mb1.SetMethod = @set_myCoord;
このプロパティを設定する際、MATLAB® はプロパティの関数 set を必ず呼び出します。
b1.myCoord = [1 2 3] % length must be two
Error using button.set_myCoord myCoords require two values
プロパティ アクセス メソッド内からに限り、プロパティ値の設定、取得が可能です。set または get メソッドから他の関数を呼び出して、その関数からプロパティ値にアクセスすることはできません。