是否有可能创建继承枚举A属性的枚举B,并提供扩展元素的可能性?
示例
Enum A
- one
- two
- three
Enum B:A
- four发布于 2013-02-06 13:20:18
不这是不可能的。基Enum不支持继承。
发布于 2013-02-13 17:06:43
您不能这样做,但是如果您手动创建两个基枚举,第二个枚举具有相同的标签和第一个值,您实际上可以在运行时“向下转换”它们,就像它们是以这种方式继承的(真正的代码):
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)); 希望这能有所帮助。
https://stackoverflow.com/questions/14726696
复制相似问题