为什么没有文化枚举?

问候,

我想知道为什么C#中的文化没有预先设定的枚举? 由于文化永远不会改变,并且总是像“nl-NL,en-GB,en-US”..为什么不为它做一个简单的事情让事情变得有点容易?

[编辑]

如上所述,文化会发生变化……但不是全部。 为什么不制作一个包含所有文化并允许添加/更改它们的枚举/类类型?

“既然文化从未改变”

不是吗? 本文(Microsoft .NET Framework 4:全球化中的新增function)不同意。 仅在过去的5年中,塞尔维亚地区就发生了很多变化,导致了新的文化。

在现实世界中,由于新标准经常更新文化敏感信息,或者因为微软发现有关不同市场的更准确信息或扩展到更多市场,全球化信息因当地市场的文化发展而不断变化。

与先前版本中的至少203种文化相比,Microsoft .NET Framework 4支持至少354种文化。 这些培养物中的许多是中性的,其被添加以完成母链到根中性培养物。

例如,在现有的文化Inuktitut(加拿大的Syllabics)和Inuktitut(拉丁语,加拿大)中添加了三种Inuktitut中性物质。

另外,我猜一个枚举本身没有意义。 CultureInfo不仅仅是一个名称,而且查找提供了更多的灵活性和独立于任何政治变化,其中有许多比我们通常意识到的更多。

枚举在编译时修复。

但是这组文化在运行时会有所不同:

  • 不同的OS版本支持不同的文化
  • 操作系统更新(Service Pack,语言界面包,…)可以添加文化
  • 后来的.NET版本支持更多文化(为一个版本构建程序集并将其与另一个版本一起使用)。

虽然很慢,但它们确实发生了变化。 无论如何,它们早于C#,所以在这一点上将它们变成一个枚举就是kludgery。 就像把POSIX系统调用变成枚举一样,我在postForth做过,但是当我做它时知道它是错误的。

除了他们改变之外,正如其他人所建议的那样,你可以创建自己的文化 ,因为你无法在其中添加项目,所以它们会明显地不在枚举中。