이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

속성값과 입력값의 유효성 검사하기

이 예제에서는 사용자의 입력값 및 속성값이 유효한지 확인하는 방법을 보여줍니다.

속성값의 유효성 검사하기

이 예제에서는 set.PropertyName 구문을 사용하여 단일 속성값의 유효성을 검사하는 방법을 보여줍니다. 이 경우, PropertyNameIncrement입니다. 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

참고 항목

|

관련 항목