【发布时间】:2013-08-27 18:01:59
【问题描述】:
我正在尝试使用枚举类来指示另一个类的构造函数中 switch 语句中的行为。所以,我有以下内容:
来自我的枚举类:
classdef(Enumeration) MyScheme
enumeration
Scheme1, Scheme2, Scheme3
end
end
然后是使用它的类:
classdef MyClass < handle
methods
function c = MyClass(scheme, varargin)
switch(scheme)
case MyScheme.Scheme1
% Do stuff with varargin
case MyScheme.Scheme2
% Do different stuff with varargin
case MyScheme.Scheme3
% Do yet something else with varargin
otherwise
err('Not a valid scheme');
end
end
end
end
但是,无论我将什么方案传递给构造函数,它都直接进入第一种情况。当我添加断点并逐步检查并手动检查相等性(scheme == MyScheme.Scheme1)时,它会识别出两者不相等并为此检查返回 0,所以我完全不明白为什么它仍然会进入第一种情况。如果我更改案例的顺序,它将只输入第一个。据我所知,这与this MATLAB help document 的 在 Switch 语句中使用枚举 部分的语法相同,但也许我遗漏了一些明显的东西?
【问题讨论】:
标签: matlab oop enums switch-statement