2

是否有可能创建一个A继承枚举属性B并另外提供扩展元素的可能性的枚举?

示例

Enum A
- one
- two
- three

Enum B:A
- four
4

2 回答 2

1

不,这是不可能的。基本枚举不支持继承。

于 2013-02-06T13:20:18.723 回答
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));    

希望这可以帮助。

于 2013-02-13T17:06:43.700 回答