问候,
我想知道为什么C#中的文化没有预先设定的枚举? 由于文化永远不会改变,并且总是像“nl-NL,en-GB,en-US”..为什么不为它做一个简单的事情让事情变得有点容易?
[编辑]
如上所述,文化会发生变化......但不是全部。为什么不制作一个包含所有文化并允许添加/更改它们的枚举/类类型?
答案 0 :(得分:15)
“因为文化永远不会改变”
不是吗? This article (Microsoft .NET Framework 4: What is New in Globalization)不同意。仅在过去的5年中,塞尔维亚地区发生了很多变化,导致了新的文化。
在现实世界中,由于新标准经常更新文化敏感信息,或者微软发现有关不同市场的更准确信息或扩展到更多市场,全球化信息因本地市场的文化发展而不断变化
Microsoft .NET Framework 4支持至少354种文化,而之前版本中至少包含203种文化。这些文化中的许多都是中性的,这些中性被添加以完成母链到根中性培养。
例如,已经存在的文化Inuktitut(加拿大音节学)和Inuktitut(拉丁语,加拿大)中添加了三个Inuktitut中性物质
另外,我猜一个枚举本身没有意义。 CultureInfo不仅仅是一个名称,而且查找提供了更多的灵活性和独立于任何政治变化,其中有许多比我们通常意识到的更多。
答案 1 :(得分:7)
枚举在编译时修复。
但是这些文化在运行时会有所不同:
答案 2 :(得分:3)
他们确实会改变,虽然很慢。无论如何,它们早于C#,所以在这一点上将它们变成一个枚举就是kludgery。就像把POSIX系统调用变成枚举一样,我在postForth做过,但是当我这样做时就知道它是错误的。
答案 3 :(得分:2)
除了他们改变之外,正如其他人所建议的那样,你可以create your own cultures,因为你无法向它添加项目,所以它们会明显地不在枚举中。