Установите и получите методы для динамических свойств

Вы можете задать доступ к набору свойств или получить методы доступа для динамических свойств, не создавая дополнительных методов класса. Общие сведения об использовании методов доступа см. в разделе Методы доступа к свойствам.

Создайте методы доступа для динамических свойств

Используйте следующие шаги для создания метода доступа к свойствам:

  • Задайте функцию, которая реализует операции, которые вы хотите выполнить, прежде чем произойдет набор свойств или их получение. Эти методы должны иметь следующие сигнатуры: mySet(obj,val) или val = myGet(obj)

  • Получите соответствующее meta.DynamicProperty динамического свойства объект.

  • Назначьте указатель на функцию, ссылающийся на ваш набор или получите функцию свойства к meta.DynamicProperty GetMethod объекта или SetMethod свойство. Эта функция не должна быть методом класса. Вы не можете использовать схему именования, подобную набору PropertyName.. Вместо этого используйте любое другое допустимое имя функции.

Предположим, что вы хотите создать функцию набора свойств для myCoord динамическое свойство button класс, созданный в разделе «Задать динамические свойства».

Напишите функцию следующим образом.

function set_myCoord(obj,val)
   if  ~(length(val) == 2) 
      error('myCoords require two values')
   end
   obj.myCoord = val; 
end 

Потому что button является handle класс, функции набора свойств не нужно возвращать объект в качестве выходного аргумента.

Чтобы получить meta.DynamicProperty объект, используйте handle классы findprop метод:

mb1 = b1.findprop('myCoord');
mb1.SetMethod = @set_myCoord;

MATLAB® вызывает функцию набора свойств каждый раз, когда вы устанавливаете это свойство:

b1.myCoord = [1 2 3] % length must be two
Error using button.set_myCoord
myCoords require two values

Вы можете задать и получить значения свойств только из методов доступа к свойствам. Вы не можете вызвать другую функцию из аппарата или получить метод, а затем попытаться получить доступ к значению свойства из этой функции.

Общие методы набора и получения

Можно назначить тот же указатель на функцию для набора или получить метод с несколькими динамическими свойствами. MATLAB передает только объект и значение назначенной функции набора.

Ссылка или назначение свойству из его набора или метод get не вызывает набор или метод get снова. Поэтому, если вы используете указатель на ту же функцию для нескольких динамических свойств, эта функция не вызывается при доступе к любому из этих свойств из этой функции.

Похожие темы