Объекты, передаваемые методам классов, совместимых с дескрипторами, могут быть объектами дескрипторов или значений. Существует два различных поведения, которые следует учитывать при реализации методов для класса, которые работают как с дескрипторами, так и со значениями:
Если входной объект является объектом-дескриптором, и метод изменяет объект-дескриптор, эти изменения отображаются во всех рабочих областях, содержащих один и тот же дескриптор.
Если входной объект является объектом значения, то изменения, внесенные в объект в методе, влияют только на значение в рабочей области метода.
Методы, совместимые с дескрипторами, обычно не изменяют входные объекты, поскольку эффекты таких изменений не одинаковы для дескрипторов и нерабочих объектов.
Сведения об изменении объектов-дескрипторов и значений см. в разделе Изменение объекта.
Если метод работает как с объектами дескриптора, так и со значениями, он должен вернуть измененный объект. Например, setTime метод возвращает объект, который он изменяет:
classdef (HandleCompatible) Util % Utility class that adds a time stamp properties TimeStamp end methods function obj = setTime(obj) obj.TimeStamp = now; end end end