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

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

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

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

  • Задайте функцию, которая реализует операции, которые вы хотите выполнить, прежде чем набор свойств или добираться происходит. Эти методы должны иметь следующие подписи: 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

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

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

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

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

Похожие темы