是否有可能创建一个继承枚举A
属性的枚举B
,并提供扩展元素的可能性?
示例:
Enum A
- one
- two
- three
Enum B:A
- four
答案 0 :(得分:1)
不,这是不可能的。 基本枚举不支持继承。
答案 1 :(得分:1)
你不能,但如果你手动创建两个基本枚举,第二个具有相同的标签和第一个的值,你可以在运行时虚拟“向下”,就像它们是继承的,这样(真正的代码) ):
NoYes e1; // 0 No, 1 Yes
NoYesError e2; // 0 No, 1 Yes, 2 Error
e1 = NoYes::No;
e2 = e1+0; // Add zero to avoid compile error
info(strFmt("%1 %2", e1, e2));
e2 = NoYesError::Error;
e1 = e2+0; // Don't do that
info(strFmt("%1 %2", e1, e2));
希望这有帮助。