我有一个句柄类,即mclass
下面,它应该在另一个具有相应输入参数的函数中构造。但是,我想在类本身的任何地方的构造函数中检查类构造函数的输入参数,并防止在输入不是所需类型时创建新的对象句柄。
classdef mclass < handle
properties
val
end
properties (Dependent)
sval
end
methods
function obj = mclass(varargin)
if nargin == 1
if isnumeric(varargin{1}) && varargin{1} > 0
obj.val = varargin{1};
else
errordlg('Invalid input', 'Constructor', 'modal');
end
else
errordlg('No input', 'Constructor', 'modal');
end
end
function s = get.sval(obj)
s = sqrt(obj.val);
end
end
end
但是,在调用m = mclass;
或m = mclass(0);
从命令行窗口之后,连同错误对话框,变量m
仍会在工作区中创建。如何防止m
被创建?
当然我可以在调用构造函数之前检查我的其他函数中的输入,但是无论如何让它成为类的“自检”特性?