仅包含字符串值的公共枚举
我总是很困惑应该使用哪种枚举。一个哈希表,一个枚举,一个结构体,一个字典,一个数组(多么老派),静态字符串......
我不想在代码中使用字符串,而是想使用一个漂亮的枚举,如下所示:
public enum MyConfigs
{
Configuration1,
Configuration2
}
问题是我并不总是想要将我的枚举 toString()
转换为我对 enum
的索引表示不感兴趣。
表示基于字符串的值的公共枚举的最佳方式是什么?
最后,我希望在代码中需要的地方使用 MyConfigs.Configuration1
。
I'm always confused which kind of enumeration I should use. A hashtable, an enum, a struct a dictionary, an array (how oldschool), static strings...
Instead of using strings in my code I want to use a beautiful enum like so:
public enum MyConfigs
{
Configuration1,
Configuration2
}
Problem is that I don't always want to convert my enum toString()
as I'm not interested in the index representation of the enum
.
What is the best way to represent a public enumeration of string based values?
In the end I would love to end up with using MyConfigs.Configuration1
where needed in my code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我更喜欢将“分组”常量定义为虚拟静态类的静态成员,如下所示:
但当然它们不是直接“可枚举”的,因此除非您也提供静态数组,否则您不能对它们进行 foreach :
I prefer defining "grouped" constants as static members of a dummy static class, like so:
But of course they are not "enumerable" directly, so you can't foreach over them unless you provide a static array too:
这与枚举的实现方式几乎相同(忽略整个“它必须是整数”的事情)。
This is then pretty-much identical to how enums are implemented (ignoring the whole "it must be an integer" thing).
类型安全的枚举模式?
您可以这样使用:
如果您从不需要以类型安全的方式将这些值传递给方法等,那么最好只坚持使用常量文件。
Type-safe enum pattern?
You can use this like:
If you never need to pass these values around in a type-safe manner to methods etc. then it is probably best to just stick with a constants file.