问题标签 [enums]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
26889 浏览

wcf - 您是否在 WCF Web 服务中使用枚举类型?

我听说有人说枚举是邪恶的,不应该在 Web 服务中使用,因为如果分配了某些值,或者如果枚举被标记为Flags属性,服务器和客户端之间可能会发生不匹配。他们还说,公开枚举的 Web 服务更难维护,但不能真正给我可行的论据。那么根据您的经验,在 WCF Web 服务中使用枚举的优缺点是什么?

0 投票
5 回答
23074 浏览

c# - 如何将复选框双向绑定到标志枚举的单个位?

对于那些喜欢良好的 WPF 绑定挑战的人:

我有一个几乎实用的示例,将 a 双向绑定CheckBox到标志枚举的单个位(感谢 Ian Oakes,原始 MSDN 帖子)。但问题是绑定表现得好像它是一种方式(UI 到DataContext,反之亦然)。因此有效地CheckBox不会初始化,但如果切换它,则数据源会正确更新。Attached 是定义一些附加依赖属性以启用基于位的绑定的类。我注意到的是 ValueChanged 永远不会被调用,即使我强制DataContext改变。

我尝试过:更改属性定义的顺序,使用标签和文本框确认DataContext正在冒泡更新,任何合理的FrameworkMetadataPropertyOptionsAffectsRenderBindsTwoWayByDefault),明确设置Binding Mode=TwoWay,在墙上敲打头,在发生冲突时更改ValuePropertyEnumValueProperty

任何建议或想法将不胜感激,感谢您提供的任何东西!

枚举:

XAML 用法:

班上:

0 投票
7 回答
30631 浏览

c# - 检查枚举是否具有等于字符串的字段

我有一个枚举

我有一个 FileInfo,我想检查扩展名是否在前一个枚举中。我希望我能做一个

但这太棒了。有任何想法吗?

0 投票
5 回答
26158 浏览

actionscript-3 - AS3/Flash/Flex 中的枚举?

我真正喜欢 AS3 而不是 AS2 的一件事是它增加了多少编译时类型检查。然而,它似乎有点缺乏可用的类型检查枚举结构。在 AS3 中执行自定义枚举类型的好(最佳/公认)方法是什么?

0 投票
6 回答
6608 浏览

database - 哪些数据库系统支持 ENUM 数据类型,哪些不支持?

跟进这个问题:“数据库枚举 - 优点和缺点”,我想知道哪些数据库系统支持枚举数据类型,以及它们如何做的一些细节(例如内部存储的内容,限制是什么,查询语法含义,索引含义,...)。

用例或利弊的讨论应在其他问题中进行。

0 投票
5 回答
606 浏览

java - 随着 API 的发展,处理“int enum”模式与 java 枚举共存的最佳方法是什么?

假设您正在维护一个最初在几年前发布的 API(在 java 获得enum支持之前),它定义了一个枚举值作为整数的类:

多年来,API 不断发展并获得了 Java 5 特定的特性(通用接口等)。现在你要添加一个新的枚举:

“旧式” int-enum 模式没有类型安全性,不可能添加行为或数据等,但它已发布并正在使用中。我担心对于 API 的用户来说混合两种枚举风格是不一致的。

我看到了三种可能的方法:

  • 放弃并将新的枚举(NutrientType在我的虚构示例中)定义为一系列整数,如VitaminType类。您获得了一致性,但您没有利用类型安全和其他现代功能。

  • 决定忍受已发布 API 中的不一致:保持VitaminType原样,并添加NutrientTypeenum. 采用 aVitaminType的方法仍被声明为采用 int,采用 a 的方法NutrientType被声明为采用 int。

  • 弃用VitaminType该类并引入一个新的VitaminType2枚举。将新定义NutrientType为枚举。
    恭喜,在接下来的 2-3 年中,直到您可以杀死已弃用的类型,您将处理每个将 aVitaminType作为 int 的方法的弃用版本并添加每个方法的新foo(VitaminType2 v)版本。您还需要为每个已弃用foo(int v)的方法及其相应的foo(VitaminType2 v)方法编写测试,因此您只是增加了 QA 工作量。

最好的方法是什么?

0 投票
2 回答
3735 浏览

java - 如何获取 XMLBeans 中的所有枚举值?

Apache XMLBeans 可用于从 XML 模式定义文件 (XSD) 生成 Java 类和接口。它还根据 StringEnumAbstractBase 和 StringEnumAbstractBase.Table 生成枚举来表示域值。它们对于仅输入有效值很方便。但是,我想获取所有这些值来生成 JCombobox、JTable 或 html 表。

是否有 XMLBeans API 调用来从生成的类中获取所有 Enum 值?唯一可用的选择是某种 Java 反射吗?

谢谢

0 投票
3 回答
1509 浏览

c# - c#'bracketed'类型转换的运行时等价物是什么

假设我有一个枚举

然后我可以写

它会起作用。

但是如果我尝试在运行时这样做,比如

它会抛出 InvalidCastException。

那么,有什么我可以在运行时调用的东西,它会从 int32 转换为 enum,就像我在上面写一个演员表一样?

0 投票
6 回答
3495 浏览

c# - 枚举应该有未初始化的值。

我们正在争论枚举是否应该具有未初始化的值。例如。我们有

或者

我认为不应该有任何内容,但是您必须在初始化时默认为某个有效值。但其他人认为应该通过另一个为 None 或 NotSet 的枚举来表明统一状态。

想法?

0 投票
3 回答
1377 浏览

c# - 枚举是否仅命名为整数、类型或两者都不是?

在 C# 中使用枚举很有趣。取一个为存储您之前定义的 Enum 而创建的通用列表,并在其中添加一些项目。使用 foreach 进行迭代,或者GetEnumerator<T>()指定其他一些枚举然后是原始枚举,看看会发生什么。我期待 InvalidCastException 或类似的东西,但它非常有效:)。

为了演示,让我们使用一个简单的控制台应用程序并在那里创建两个枚举:汽车和动物:

并在 main 方法中执行此操作:

它将在控制台中打印:

为什么会这样?我的第一个猜测是,枚举本身并不是一个类型,它只是和 int,但事实并非如此:如果我们写:

Console.WriteLine(Animals.Tiger.GetType().FullName); 我们将打印出他的全名!那么为什么会这样呢?