メインコンテンツ

プロパティ値の変更の観測

この例では、プロパティ値への変更をリスニングする方法を説明します。この例では、次を使用します。

  • PostSet イベント。次により事前定義されています: MATLAB®

  • SetObservable : プロパティ PostSet イベントをトリガーできるプロパティ属性

  • addlistener : リスナーを作成するハンドル クラス メソッド

classdef PropLis < handle
   % Define a property that is SetObservable
   properties (SetObservable)
      ObservedProp = 1
   end
   methods
      function attachListener(obj)
         %Attach a listener to a PropListener object
         addlistener(obj,'ObservedProp','PostSet',@PropLis.propChange);
      end
   end
   methods (Static)
      function propChange(metaProp,eventData)
         % Callback for PostSet event
         % Inputs: matlab.metadata.Property object, event.PropertyEvent
         h = eventData.AffectedObject;
         propName = metaProp.Name;
         disp(['The ',propName,' property has changed.'])
         disp(['The new value is: ',num2str(h.ObservedProp)])
         disp(['Its default value is: ',num2str(metaProp.DefaultValue)])
      end
   end
end

PropLis クラスは、通常のメソッド (attachListener) を使って、ObservedProp プロパティにリスナーを追加します。PropLis クラスがコンストラクターを定義する場合、コンストラクターには addlistener の呼び出しを含めることができます。

リスナー コールバックは静的メソッド (propChange) です。この関数を呼び出すときに MATLAB は 2 つの引数を渡します。

これらの引数は、プロパティとイベントに関する情報を提供します。

インスタンスを作成し、その attachListener メソッドを呼び出して PropLis クラスを使用します。

plObj = PropLis;
plObj.ObservedProp
ans =

     1
plObj.attachListener
plObj.ObservedProp = 2;
The ObservedProp property has changed.
The new value is: 2
Its default value is: 1

参考

| |

トピック