Пакет: событие
Суперклассы: event.EventData
Данные о событиях для InstanceCreated и InstanceDestroyed события
Этот класс определяет данные о событиях, которые передаются прослушивателям meta.class
InstanceCreated и InstanceDestroyed события.
The event.ClassInstanceEvent класс является handle класс.
Sealed | true |
ConstructOnLoad | true |
HandleCompatible | true |
RestrictsSubclassing | true |
Для получения информации об атрибутах класса см. раздел «Атрибуты класса».
MATLAB® создает event.ClassInstanceEvent объект при запуске InstanceCreated или InstanceDestroyed событие.
Instance - Объект создается или удаляетсяОбъект создается или удаляется.
GetAccess | public |
SetAccess | private |
GetObservable | true |
SetObservable | true |
Типы данных: object
Source - объект meta.class, являющийся источником событияmeta.classmeta.class объект, являющийся источником события, возвращенный как meta.class объект.
GetAccess | public |
SetAccess | private |
GetObservable | true |
SetObservable | true |
Типы данных: meta.class
EventName - Имя событияИмя события, возвращенное как вектор символов либо InstanceCreated или InstanceDestroyed.
GetAccess | public |
SetAccess | private |
GetObservable | true |
SetObservable | true |
Типы данных: char
Использование meta.class события для подсчета количества образцов при создании и уничтожении объектов.
Создайте класс с функцией обратного вызова для InstanceCreated и InstanceDestroyed события. The eventCallback статический метод использует постоянную переменную, чтобы сохранить количество образцов существующего класса. The addEventListeners метод добавляет прослушивателей в meta.class объект для CountInstances класс.
classdef CountInstances methods (Static) function eventCallback(~,eventData) % Callback for InstanceCreated and InstanceDestroyed persistent instanceCount if ~isempty(instanceCount) switch eventData.EventName case "InstanceCreated" instanceCount = instanceCount + 1; case "InstanceDestroyed" if ~instanceCount == 0 instanceCount = instanceCount - 1; end end else instanceCount = 1; end fprintf('%s %d \n',... 'Number of Instances: ',instanceCount) end function addEventListeners(mc) % Add listeners addlistener(mc,"InstanceCreated",... @(src,evnt)CountInstances.eventCallback(src,evnt)); addlistener(mc,"InstanceDestroyed",... @(src,evnt)CountInstances.eventCallback(src,evnt)); end end end
Создайте meta.class объект для CountInstances классы и добавление прослушивателей для InstanceCreated и InstanceDestroyed события. Этот пример использует один и тот же коллбэк для обоих событий.
mc = ?CountInstances; CountInstances.addEventListeners(mc)
Всякий раз, когда вы создаете или уничтожаете объект CountInstances класс, событие вызывает обновление instanceCount постоянная переменная.
obj1 = CountInstances;
Number of Instances: 1
obj2 = CountInstances;
Number of Instances: 2
clear obj1Number of Instances: 1
Использование meta.class события для наблюдения за созданием и уничтожением объектов
Создайте класс с функцией обратного вызова для InstanceCreated и InstanceDestroyed события. The eventCallback статический метод служит функцией обратного вызова для обоих событий. The addEventListeners метод добавляет прослушивателей в meta.class объект для ClassInstanceEvent класс.
classdef ClassInstanceListeners properties Prop end methods function obj = ClassInstanceListeners(p) obj.Prop = p; end end methods (Static) function eventCallback(~,eventData) % Callback for InstanceCreated and InstanceDestroyed I = eventData.Instance; S = eventData.Source; E = eventData.EventName; dashLine = sprintf('%s\n','--------------------'); fprintf('%s',dashLine) fprintf('%s \n',['Class: ',class(I)]) fprintf('%s %d \n',[S.PropertyList.Name ': '],I.Prop) fprintf('%s%s \n','Event: ', E) fprintf('%s',dashLine) end function addEventListeners(mc) % Add listeners addlistener(mc,"InstanceCreated",... @(src,evnt)ClassInstanceListeners.eventCallback(src,evnt)); addlistener(mc,"InstanceDestroyed",... @(src,evnt)ClassInstanceListeners.eventCallback(src,evnt)); end end end
Создайте meta.class объект для CreateInstanceListeners классы и добавление прослушивателей для InstanceCreated и InstanceDestroyed события. Этот пример использует один и тот же коллбэк для обоих событий. Создайте образец CreateInstanceListeners Класс и присвоение идентификатор в свойство Prop.
mc = ?ClassInstanceListeners; ClassInstanceListeners.addEventListeners(mc) obj = ClassInstanceListeners(1334);
-------------------- Class: ClassInstanceListeners Prop: 1334 Event: InstanceCreated --------------------
Построение другого образца, назначенного той же переменной, создает новый объект и уничтожает старый объект.
obj = ClassInstanceListeners(7335);
-------------------- Class: ClassInstanceListeners Prop: 7335 Event: InstanceCreated -------------------- -------------------- Class: ClassInstanceListeners Prop: 1334 Event: InstanceDestroyed --------------------
Если вы изменяете определение класса, MATLAB удаляет meta.class объект, поскольку он больше не является допустимым описанием класса. После изменения класса необходимо создать новое meta.class объект и добавить к нему прослушиватели.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.