enumMyEnum{Invalid=0,Value1=1,Value1=2,}voidmain(){MyEnume1=MyEnum.Value1;inti1=2;//IsthereanydifferencehowtocompareenumErationvalueswithintegers?if(e1==(MyEnum)i1)...//1stif((int)e1==i1)...//2nd在上述每种情况下,我们都将枚举转换为int或将int转换为枚举。这些转化(性能,任何其他)有什么不同吗?或者它们完全一样?谢谢。附言在当前示例中,我将其与“魔数(MagicNumber)”进行比较,但在
我会将枚举的值与组合框控件绑定(bind)。我写了这段代码:cboPriorLogicalOperator.DataSource=Enum.GetValues(typeof(MyEnum)).Cast().Select(p=>new{Key=(int)p,Value=p.ToString()}).ToList();myComboBox.DisplayMember="Value";myComboBox.ValueMember="Key";效果很好,但我想知道是否有更简单的方法。 最佳答案 我觉得你的代码很漂亮!唯一的改进是将代码放在扩
我会将枚举的值与组合框控件绑定(bind)。我写了这段代码:cboPriorLogicalOperator.DataSource=Enum.GetValues(typeof(MyEnum)).Cast().Select(p=>new{Key=(int)p,Value=p.ToString()}).ToList();myComboBox.DisplayMember="Value";myComboBox.ValueMember="Key";效果很好,但我想知道是否有更简单的方法。 最佳答案 我觉得你的代码很漂亮!唯一的改进是将代码放在扩
如果是这样的话,我可能会在这里遗漏一些要点-请将该讨论作为我问题的一部分:)。这是一个缩短并重命名的工作代码示例。GetTicks(…)是一个样本,它可以是任何类型的功能(>0的值应该返回一个特定的Enuma.so)。publicstaticclassSomething{publicenumTypeOf:short{Minute=2,Hour=3,Day=4,…}publicstaticlongGetTicks(Something.TypeOfsomeEnum){longticks=0;switch(someEnum){caseSomething.TypeOf.Minute:ticks
如果是这样的话,我可能会在这里遗漏一些要点-请将该讨论作为我问题的一部分:)。这是一个缩短并重命名的工作代码示例。GetTicks(…)是一个样本,它可以是任何类型的功能(>0的值应该返回一个特定的Enuma.so)。publicstaticclassSomething{publicenumTypeOf:short{Minute=2,Hour=3,Day=4,…}publicstaticlongGetTicks(Something.TypeOfsomeEnum){longticks=0;switch(someEnum){caseSomething.TypeOf.Minute:ticks
假设我们有一个枚举:enumFoo{A=1,B=2,C=3}如果类型在编译时已知,则可以使用直接转换在枚举类型和基础类型(通常是int)之间进行更改:staticintGetValue(){return2;}...Foofoo=(Foo)GetValue();//becomesFoo.B装箱后得到一个Foo类型的框:objecto1=foo;Console.WriteLine(o1.GetType().Name);//writesFoo(实际上,您可以装箱为Foo并拆箱为int,或者装箱为int并拆箱为Foo很高兴)但是(问题);如果枚举类型只在运行时才知道,事情就……更棘手了。将它装
假设我们有一个枚举:enumFoo{A=1,B=2,C=3}如果类型在编译时已知,则可以使用直接转换在枚举类型和基础类型(通常是int)之间进行更改:staticintGetValue(){return2;}...Foofoo=(Foo)GetValue();//becomesFoo.B装箱后得到一个Foo类型的框:objecto1=foo;Console.WriteLine(o1.GetType().Name);//writesFoo(实际上,您可以装箱为Foo并拆箱为int,或者装箱为int并拆箱为Foo很高兴)但是(问题);如果枚举类型只在运行时才知道,事情就……更棘手了。将它装
为什么这个.NET枚举允许在最后一个字段中有一个逗号?这有什么特殊意义吗?[FlagsAttribute]publicenumDependencyPropertyOptions:byte{Default=1,ReadOnly=2,Optional=4,DelegateProperty=32,Metadata=8,NonSerialized=16,} 最佳答案 没有什么特别的意思,就是编译器的工作方式,主要是这个原因:[FlagsAttribute]publicenumDependencyPropertyOptions:byte{De
为什么这个.NET枚举允许在最后一个字段中有一个逗号?这有什么特殊意义吗?[FlagsAttribute]publicenumDependencyPropertyOptions:byte{Default=1,ReadOnly=2,Optional=4,DelegateProperty=32,Metadata=8,NonSerialized=16,} 最佳答案 没有什么特别的意思,就是编译器的工作方式,主要是这个原因:[FlagsAttribute]publicenumDependencyPropertyOptions:byte{De
当使用具有枚举属性的类时,通常会在属性名称和枚举类型之间发生命名冲突。示例:enumDay{Monday,Tuesday,...}classMyDateClass{privateDayday;publicDayDay{get{returnday;}}}因为只有标志枚举应该有复数名称,所以将枚举命名为“Days”不是非标志枚举的方式。在上面的示例中,您可以为枚举或属性使用一些变体,例如“WeekDay”。但在一般情况下,没有像这样好的变体,因此您最终会为具有Foo和Bar类型枚举属性的对象使用诸如“FooMode”或“BarKind”之类的属性。不太优雅。在这种情况下,您通常如何命名枚举