C# 仅继承枚举的一部分

C# 仅继承枚举的一部分,c#,enums,C#,Enums,我在父类中有一个枚举,它有几个元素。我继承了另一个类。在子类中,我希望枚举只包含部分元素,而不是全部元素。有什么方法可以实现这一点吗?你确实不能,但是你可以创建一个带有静态私有属性的结构,它不会被继承到派生类中你不能继承枚举。但是,您可以将枚举嵌套在另一个类中。除此之外,你想要tio做的是不可能的,甚至可能是危险的。设想有人这样称呼:MyBaseClass b=new-Derived();b、 TheEnum=…。当您在运行时提供实例的实际类型时,编译器应该如何推断枚举的正确类型?即使您可以,它

我在父类中有一个枚举,它有几个元素。我继承了另一个类。在子类中,我希望枚举只包含部分元素,而不是全部元素。有什么方法可以实现这一点吗?

你确实不能,但是你可以创建一个带有静态私有属性的结构,它不会被继承到派生类中

你不能继承枚举。但是,您可以将枚举嵌套在另一个类中。除此之外,你想要tio做的是不可能的,甚至可能是危险的。设想有人这样称呼:
MyBaseClass b=new-Derived();b、 TheEnum=…
。当您在运行时提供实例的实际类型时,编译器应该如何推断枚举的正确类型?即使您可以,它也将一无所获,除了一些更好的智能感知。请记住,枚举只是美化的整数--
(MyBaseEnum)17
非常好,即使没有值为
17
的标记。简单地忽略价值观通常不能防止你想要保护的东西。是的,我知道这不可能做到,但我还是想问一下。我会想出另一种不使用枚举的方法。@Megid:你想解决什么特殊任务?这个问题听起来像是XY问题,感觉有些不对劲。枚举基本上是常量。如果您是负责枚举的人,并且逻辑被划分,那么我建议将枚举划分为单独的枚举。如果您只想使用某些枚举,那么应该在类的内部管理该逻辑,而不是将枚举作为公共参数选项公开。换句话说,将逻辑封装到设置枚举的方法中。你介意发布代码还是伪代码?我觉得你忽略了一个更好的解决方案。