问题标签 [enumeration]

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 回答
33309 浏览

enumeration - 查找表最佳实践:数据库表...或枚举

如果我们必须存储公司的可用职位(即经理、团队负责人等)。存储它的最佳做法是什么?我有两种意见和评论......“当然,欢迎你的”

  1. 将其存储为具有列 ID 和 Name 的 DB 表,并使用查询和连接处理它。
  2. 将其存储为 Enum 并忘记数据库表。

在我看来,如果我有更改项目,我会选择第一个解决方案。这样我就不会将这些选项硬编码为 Enum。
如果我确信数据不会改变(例如,性别:男性、女性),我可以选择 Enum 解决方案。

注意:我用英语编码,UI 文化可能是阿拉伯语。如果我将使用 Enum 解决方案,我将在表示层中对基于文化的字符串进行硬编码,从最佳实践的角度来看是否可以!!!!

我想知道您的意见,如果我的想法符合最推荐的“最佳实践”?

0 投票
11 回答
377 浏览

c# - 将类视为使用接口定义的

我有 100 个类,它们有一些相似的元素和一些独特的元素。我创建了一个接口来命名那些类似的项目,例如:接口 IAnimal。我通常会做的是:

但是有 100 个课程,我不想通过所有课程来寻找可以应用 IAnimal 的课程。

我想做的是:

或者

然后做

有没有办法让 c# 让我将褶边和邋遢视为 IAnimal 而不必在编写类时编写:IAnimal。

谢谢!

编辑(不懒惰):这些类是从 sql 存储的 proc 元数据生成的,这意味着每次生成它时我都必须返回并添加它们,或者修改代码生成器以识别接口中的成员,实际上那不是一个坏主意。我希望有某种泛型方法或其他东西。

0 投票
6 回答
22968 浏览

c++ - 如何使用带有参数/修改的 std::foreach

我发现自己在写作

很多,我想把它压缩成一个foreach声明,但我不确定如何param在不冗长的情况下进入那里。我也有类似的东西

我也想重写那个人。有什么想法吗?

哦,还有,由于种种原因,我不想用boost。

0 投票
4 回答
4600 浏览

.net - GetCustomAttributes() 是否保留 .NET 中的属性顺序?

标题基本概括了所有内容。当我通过我的类进行一些反思时,MemberInfo.GetCustomAttributes() 方法是否会保留成员的属性顺序?官方文档并没有以任何方式说明任何事情。


如果你想知道我为什么需要这个,这里是完整的解释。现在提出的问题很长而且不需要,但也许有人可以为更大的问题想出一个替代解决方案,它不涉及依赖属性枚举顺序。

我正在尝试为(ASP.NET)应用程序创建一个灵活的框架,该应用程序预计具有相当长的生命周期。在整个过程中,它将获得许多必须从菜单中访问的表格。为了让开发人员的生活更轻松,我制作了一个MenuItemAttribute您可以将其应用于表单的类。此属性在其构造函数中具有无限数量的字符串参数,允许开发人员指定表单在菜单中的确切位置。一个典型的使用示例是这样的[MenuItem("Company", "Clients", "Orders")]这将意味着菜单应该有一个项目“公司”,在该项目下将有一个项目“客户”,在该项目下将有一个项目“订单” - 然后将打开表单。如果需要,单个表单可以具有多个这些属性 - 然后可以从菜单中的多个位置访问它。

显然,整个菜单是在运行时通过枚举我的程序集中的所有类并搜索该属性来构建的。但是最近我收到了一个请求,即菜单项应该以预定义的方式进行排序。具有相关功能的表单应在菜单中彼此相邻。请注意,这不是按字母排序,而是开发人员指定的预定义顺序。

这就带来了问题——如何在这些属性中指定顺序?由于MenuItemAttribute描述了整个层次结构,因此订单规范还应包括整个(或至少一部分)层次结构的订单号。仅针对较低层次结构的订单号是不够的。

我可以制作另一个属性 - MenuItemOrderHintAttribute,但是当有多个属性时,这会带来问题MenuItemAttribute。因此,原来的问题。

我还可以将 扩展MenuItemAttribute为采用两个数组或一对数组,但这会使语法复杂化很多。最后一个想法是我可以使字符串具有特殊格式,但恕我直言,那将是相当混乱的。


好的,我有另一个想法。让我们使用 Jon Skeet 建议的顺序。这将允许指定层次结构的最后一级的顺序,而不是更高的。但我可以修改该属性,使其不仅适用于类,还适用于程序集本身。在这种情况下,菜单项将没有关联的表单。在装配级别,这些属性可用于指定层次结构更高级别之间的排序。

这是集中式和分散式菜单系统之间的权衡。任何想法为什么这是一个坏主意?

0 投票
7 回答
11890 浏览

c# - foreach 标识符和闭包

在以下两个片段中,第一个是安全的还是必须做第二个?

安全我的意思是每个线程都保证从创建线程的同一个循环迭代中调用 Foo 上的方法?

还是必须将对新变量“本地”的引用复制到循环的每次迭代中?

-

更新:正如 Jon Skeet 的回答所指出的,这与线程没有任何关系。

0 投票
5 回答
1762 浏览

design-patterns - 为什么访问者负责在访问者模式中枚举孩子?

根据我找到的代码,似乎需要访问者知道访问对象的结构并调用所需的子对象。在某些情况下,即使访问的类被修改,访问者仍希望继续工作,这似乎有点笨拙。

我想真正的问题是:它们是由访问代码而不是访问代码完成枚举的模式吗?

0 投票
7 回答
8746 浏览

objective-c - Objective-C 2.0 和快速枚举抛出异常

我有一个类似于以下的代码块:

这在技术上是 Objective-C 2.0 中的一个例外吗?看来您无法通过快速枚举来改变集合。这是错误的结果:

解决这个问题的最佳方法是什么?

0 投票
4 回答
6145 浏览

javascript - javascript中的for..in和for each..in有什么区别?

javascript中的for..in和for each..in语句有什么区别?是否存在我不知道的细微差别,或者是否相同,并且每个浏览器都有不同的名称?

0 投票
2 回答
997 浏览

c# - 如何在 XML-RPC 和 C# 中使用枚举?

我在 C# 中使用 Cook Computing XMLRPC 框架。我正在调用一个需要 int 的远程函数。我想在客户端代码中使用枚举,而不是仅使用函数参数中硬编码的数字调用函数。

代码编译成功,但在测试期间抛出 XmlRpcUnsupportedTypeException。该消息指出我的枚举无法映射到 XML-RPC 类型。枚举如下:

我有一种感觉,我忽略了一些简单的东西,但我无法将手指放在它上面,所以我在这里将我的蝙蝠信号发射到云端!

0 投票
7 回答
12241 浏览

c# - 需要在c#中进行double类型的枚举

如何创建 double 类型的枚举?

有可能还是我必须创建某种集合和哈希?