Этот пример показывает, как проверить, что входные параметры пользователя и значения свойств допустимы.
Этот пример показывает, как подтвердить значение единственного свойства с помощью set.PropertyName синтаксис. В этом случае PropertyName является Increment. Подтвердите значение двух взаимозависимых свойств с помощью метода validatePropertiesImpl. В этом случае значением свойства UseIncrement должен быть true, и значение свойства WrapValue должно быть меньше, чем значение свойства Increment.
methods
% Validate the properties of the object
function set.Increment(obj,val)
if val >= 10
error("The increment value must be less than 10");
end
obj.Increment = val;
end
end
methods (Access = protected)
function validatePropertiesImpl(obj)
if obj.UseIncrement && obj.WrapValue > obj.Increment
error("Wrap value must be less than increment value");
end
end
endЭтот пример показывает, как подтвердить это, первый входной параметр является числовым значением.
methods (Access = protected) function validateInputsImpl(~,x) if ~isnumeric(x) error("Input must be numeric"); end end end
classdef AddOne < matlab.System % ADDONE Compute an output value by incrementing the input value % All properties occur inside a properties declaration. % These properties have public access (the default) properties (Logical) UseIncrement = true end properties (PositiveInteger) Increment = 1 WrapValue = 10 end methods % Validate the properties of the object function set.Increment(obj,val) if val >= 10 error("The increment value must be less than 10"); end obj.Increment = val; end end methods (Access = protected) function validatePropertiesImpl(obj) if obj.UseIncrement && obj.WrapValue > obj.Increment error("Wrap value must be less than increment value"); end end % Validate the inputs to the object function validateInputsImpl(~,x) if ~isnumeric(x) error("Input must be numeric"); end end function out = stepImpl(obj,in) if obj.UseIncrement out = in + obj.Increment; else out = in + 1; end end end end
validateInputsImpl | validatePropertiesImpl