在我的职业生涯中,我已经看到人们选择处理实施州和国家数据的几十种方式(如在纽约或美国)。我已经看过枚举,多维数组,来自XML文档或数据库的数据驱动类,以及很好的老式字符串。
所以,我想知道,人们认为处理这种非常常见的实现的“最佳方式”是什么?我知道大多数答案主要基于意见和偏好;但是,我很想听到一些争论,因为最近我正在讨论的应用程序的讨论导致了一场小小的辩论。
答案 0 :(得分:1)
如果你认为美国的州数不变,那么你所拥有的是一组有限的,固定的小值,这些值可以很容易地与一个数字联系起来。对于那种类型的数据结构,枚举效果很好。我的选择是枚举,因为他们有良好的编译时间验证和输入类似下面的内容读取很好。
var state = GetStateInfo(States.Nebraska);
但是,如果您认为状态数是一个变化值,那么枚举可能不是最佳选择。框架设计指南(link)建议您不要对一组被认为是开放(更改)的值使用枚举。原因是,如果值确实发生了变化,则可能会破坏已经发布的代码。相反,我会使用静态类和字符串常量作为名称。
答案 1 :(得分:1)
我会选择一个标准来枚举地理区域,然后将关键字关联到表格中。在过去,我使用过FIPS 5-2 place codes。它是一个联邦标准,数字和缩写是众所周知的。对于国际国家/地区代码,我们使用FIPS 10-4来编码地点。有一些iso标准,如ISO 3166,也可能很吸引人,但这是更多的偏好和品味。
答案 2 :(得分:0)
如果你想要的只是一个简单的状态列表,我认为枚举或XML是好的。如果您有其他相关数据,比如州税率或邮政编码数据,那么我认为我会将状态存储在数据库中。
与国家相同。您可能希望根据国家/地区控制语言,货币等。如果它在数据库中,我认为这更容易处理。