这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Enum“Inheritance”我有许多扩展抽象类的类。抽象父类定义了一个具有一组值的枚举。一些子类继承父类的枚举值,但一些子类需要枚举值不同。有什么方法可以以某种方式覆盖这些特定子类的枚举,如果没有,实现我所描述的内容的好方法是什么?classParentClass{privateMyEnumm_EnumVal;publicvirtualMyEnumEnumVal{get{returnm_EnumVal;}set{m_EnumVal=value;}}publicenumMyEnum{a,b,c};}cla
为什么会返回FalsepublicenumDirections{Up,Down,Left,Right}staticvoidMain(string[]args){boolmatches=IsOneOf(Directions.Right,Directions.Left,Directions.Right);Console.WriteLine(matches);Console.Read();}publicstaticboolIsOneOf(Enumself,paramsEnum[]values){foreach(varvalueinvalues)if(self==value)returntru
我有这些枚举publicenumQuestionStart{[Display(Name="Repeattillcommonmatchisfound")]RepeatTillCommonIsFound,[Display(Name="Repeatonce")]RepeatOnce,[Display(Name="Norepeat")]NoRepeat}publicenumQuestionEnd{[Display(Name="CancelInvitation")]CancelInvitation,[Display(Name="Planwithparticipantsonfirstavailab
今天,我遇到了一些这样的代码。namespaceFoo{publicenumGame{High,Low};publicenumSwitch{On,Off};publicclassBar(){//Blah}}我无法弄清楚这与在类中声明枚举之间的区别是什么。AFAIK,您仍然可以“覆盖”类中的那些枚举。 最佳答案 枚举是类型,就像类一样。当您在类中声明枚举时,它只是一个嵌套类型。嵌套枚举只是隐藏在外部范围中声明的具有相同名称的其他枚举,但您仍然可以通过其完全限定名称引用隐藏的枚举(在您的示例中使用namespace前缀)。决定是声明顶级
我有这个枚举:[Flags]publicenumExportFormat{None=0,Csv=1,Tsv=2,Excel=4,All=Excel|Csv|Tsv}我正在尝试对这个(或任何,实际上)枚举进行包装,以通知更改。目前它看起来像这样:publicclassNotifyingEnum:INotifyPropertyChangedwhereT:struct{privateTvalue;publiceventPropertyChangedEventHandlerPropertyChanged;publicNotifyingEnum(){if(!typeof(T).IsEnum)th
我是asp.netMVC的新手。我正在尝试在我的View页面上使用下拉控件,它从枚举中填充。我还想为下拉值添加自定义描述。我搜索了很多示例,但没有人发布如何在查看页面上填充描述。这是我的代码:View模型:publicenumSearchBy{[Description("SID/PID")]SID=1,[Description("Name")]Name,[Description("BirthDate")]DOB,[Description("Cause#")]Cause}索引.cshtml@Html.ValidationSummary(true,"",new{@class="text-d
我声明了以下枚举:publicenumTransactionTypeCode{Shipment='S',Receipt='R'}如何从TransactionTypeCode.Shipment获取值“S”或从TransactionTypeCode.Receipt获取值“R”?简单地执行TransactionTypeCode.ToString()会给出枚举名称“Shipment”或“Receipt”的字符串,因此它不会削减芥末。 最佳答案 您必须检查枚举的基础类型,然后转换为正确的类型:publicenumSuperTasks:int{
这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:CreateGenericmethodconstrainingTtoanEnum为什么我们不能在C#中执行此操作?而且,如果可能的话,我怎样才能做类似的事情!我想要什么:publicclassATagwhereT:enum{[Somecode..]}publicclassclassBasewhereT:enum{publicIDictionarytags{get;set;}}因此,当需要调用它时,我很确定只会获得我的枚举值之一。publicclassAClassUsingTag:classBase{publi
我的问题的关键部分是跳过。我计划使用具有大约20个元素的枚举类型。我想遍历这个集合,但每次都需要跳过一两个元素。跳过什么是事先知道的。一个类似的例子是枚举类型,它由所有字母组成,在迭代时,我想跳过所有元音。我应该如何以优雅/高效的方式编写迭代代码?我应该单独制作一组由元音组成的元素吗?我没有代码可以展示,因为我只是在思考这个问题。 最佳答案 varquery=Enum.GetValues(typeof(MyEnum)).Cast().Except(newMyEnum[]{MyEnum.A,MyEnum.E});foreach(MyE
我有一些正在读取的客户端数据,我已经为其中一个值定义了一个枚举,所以我可以使用Enum.Parse(type,somestring)。问题是他们刚刚添加了一个新值:“public”。是否可以定义一个也是保留字的枚举值?即:publicenumMyEnum{SomeVal,SomeOtherVal,public,YouGetTheIdea}如果没有,我想我会改写一个解析方法。 最佳答案 您可以在变量名前加上一个@。这允许您使用关键字作为变量名-所以@public。参见here.来自C#spec:Theprefix"@"enablest