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

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

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

Используйте эти шаги, чтобы создать метод доступа свойства:

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

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

  • Присвойте указатель на функцию, ссылающийся на ваш набор, или получите функцию свойства к свойству GetMethod или SetMethod объекта meta.DynamicProperty. Эта функция не должна быть методом класса. Вы не можете использовать схему именования как set.PropertyName 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

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

Совместно использованный набор и методы get

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

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

Похожие темы

Была ли эта тема полезной?