在C#中定义一个枚举,该枚举包含现有枚举的所有值和一些附加值
考虑以下C#代码: 有没有办法,我可以将这两个枚举关联起来,以便DervState从基中选取所有状态,并添加几个额外的状态在C#中定义一个枚举,该枚举包含现有枚举的所有值和一些附加值,c#,inheritance,enums,C#,Inheritance,Enums,考虑以下C#代码: 有没有办法,我可以将这两个枚举关联起来,以便DervState从基中选取所有状态,并添加几个额外的状态 提前感谢。您不能从枚举继承,仅此而已。想要这样做是非常可疑的 枚举适用于您逐字枚举了变量可能获取的所有可能值的用例。考虑一些用例,比如一周中的几天或一年中的几个月,或者硬件寄存器的配置值。高度稳定且可由简单值表示的事物 当不同的Enum对应具有不同行为但具有相同接口的不同类型时,最常发生枚举代码气味。例如,与不同的后端对话、呈现不同的页面等等。这些都是使用多态类或其他结构更
提前感谢。您不能从枚举继承,仅此而已。想要这样做是非常可疑的 枚举适用于您逐字枚举了变量可能获取的所有可能值的用例。考虑一些用例,比如一周中的几天或一年中的几个月,或者硬件寄存器的配置值。高度稳定且可由简单值表示的事物 当不同的
Enum
对应具有不同行为但具有相同接口的不同类型时,最常发生枚举代码气味。例如,与不同的后端对话、呈现不同的页面等等。这些都是使用多态类或其他结构更自然地实现的
简而言之,如果您需要这种功能,请查看可以更轻松地分离关注点并封装功能或其他结构(如字典或数组,甚至常量)的类。如果您确实需要
enum
继承,请查看两个单独的enum
s,它们描述了两种不同的东西,不应该将它们混合在一起。您不能从一个enum继承,就是这样。想要这样做是非常可疑的
枚举适用于您逐字枚举了变量可能获取的所有可能值的用例。考虑一些用例,比如一周中的几天或一年中的几个月,或者硬件寄存器的配置值。高度稳定且可由简单值表示的事物
当不同的Enum
对应具有不同行为但具有相同接口的不同类型时,最常发生枚举代码气味。例如,与不同的后端对话、呈现不同的页面等等。这些都是使用多态类或其他结构更自然地实现的
简而言之,如果您需要这种功能,请查看可以更轻松地分离关注点并封装功能或其他结构(如字典或数组,甚至常量)的类。如果您确实需要
enum
继承,请查看两个单独的enum
s,它们描述了两种不同的东西,不应该将它们混合在一起。示例代码中的DervState
在哪里?抱歉,编辑了原始的,DervState是另一个enum,表示派生类的状态。示例代码中的DervState
在哪里?抱歉,编辑了原始的,DervState是另一个枚举,表示派生类的状态。
enum BaseState {STATE_ONE, STATE_TWO}
class Base{ BaseState baseSate;}
enum DervState {STATE_ONE, STATE_TWO, STATE_THREE}
class Derv : Base { DervState dervState;}