通过用户输入扩展枚举

发布于 2024-07-15 09:25:32 字数 222 浏览 4 评论 0原文

我有以下枚举,用于我的一个过滤器,并且非常适合我的对象模型。

public enum ColorGroups
{
    White = 1,
    Brown = 2,
    Red = 3,
    Black = 4
}

我关心的是将来当客户想要在集合中使用另一种颜色时,我如何扩展集合。 我希望系统是完全动态的,不需要技术人员更改此类事情的代码。

I have the below enum that I use for one of my filters and suit well to my object model

public enum ColorGroups
{
    White = 1,
    Brown = 2,
    Red = 3,
    Black = 4
}

My concern is in the future when a client want to another color to the collection how do I extend the collection. I want the system to be fully dynamic and does not require a technical person to alter the code for such things..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷夜 2024-07-22 09:25:32

如果您希望数据可供用户编辑,则可能不适合使用枚举。 枚举是编译时单元,因此需要开发人员(或一些黑客代码生成)。

相反,请考虑使用数据库表来存储此数据,并预先填充您的项目(也许还可以使用“系统”列来控制哪些项目是用户定义的,哪些是系统所需的)。 那么更改只是向表中插入(等)。

当然,您可以使用任何其他存储机制 - 例如,配置文件中的分隔字符串 - 但我猜您会想要系统中的某个位置有一个数据库?

If you want the data to be user-editable, it may not be suitable to use an enum. Enums are compile-time units, so will require a developer (or some hacky code generation).

Instead, consider using a database table for this data, pre-populated with your items (and perhaps with a "System" column to control which ones are user-defined vs required by the system). Then changes are just inserts (etc) to the table.

You can, of course, use any other storage mechanism - for example, a delimited string in a config file - but I'm guessing you'll want a database somewhere in the system?

饭团 2024-07-22 09:25:32

在这种情况下,枚举可能不是适合该工作的工具。 您最好使用一组配置选项。 这些可以位于配置文件、注册表或数据库中,具体取决于您可用的内容以及您是否希望由开发人员、顾问还是由系统用户进行配置。

An enum may not be the right tool for the job in that case. You would be better off using a set of configuration options. These could be in a config file, in the registry or in a database, depending upon what is available to you and whether you want the configuration to be undertaken by a developer or consultant, or by the users of the system.

幸福不弃 2024-07-22 09:25:32

我希望系统是完全动态的,并且不需要技术人员更改此类事情的代码..

如果您不想,“完全动态”和“使用 enum” 是互斥的技术人员必须参与进来做出改变。 在这里,数据库或配置文件是更好的选择。

I want the system to be fully dynamic and does not require a technical person to alter the code for such things..

"Fully dynamic" and "use an enum" are mutually exclusive if you don't want a technical person to have to get involved to make changes. A database or a configuration file is a better choice here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文