exponenta event banner

Динамические свойства и динамическая нагрузка

Настройка класса ConstructOnLoad атрибут для true заставляет MATLAB ® вызывать конструктор класса при загрузке класса. MATLAB сохраняет и восстанавливает динамические свойства при загрузке объекта.

При создании динамических свойств из конструктора класса можно вызвать конфликт, если также задать класс ConstructOnLoad атрибут для true. Вот последовательность:

  • Сохраненный объект сохраняет имена и значения свойств, включая динамические свойства

  • При загрузке создается новый объект, и все свойства восстанавливаются до значений во время сохранения объекта.

  • Затем, ConstructOnLoad вызывает вызов конструктора класса, который создает другое динамическое свойство с тем же именем, что и загруженное свойство. Дополнительные сведения о последовательности нагрузок см. в разделе Сохранение и загрузка объектов.

  • MATLAB предотвращает конфликт, загружая сохраненное динамическое свойство, и не выполняет addprop при вызове конструктора.

Если вы используете ConstructOnLoad, добавить динамические свойства из конструктора класса и вызвать конструктор addprop во время загрузки, затем задайте динамическое свойство Transient атрибут для true. Этот параметр запрещает сохранение свойства. Например:

classdef (ConstructOnLoad) MyClass < dynamicprops
   function obj = MyClass
      P = addprop(obj,'DynProp');
      P.Transient = true;
      ...
   end
end  

Связанные темы