为什么没有文化枚举?

时间:2011-04-20 07:26:13

标签: c# cultureinfo

问候,

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

[编辑]

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

4 个答案:

答案 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)

枚举在编译时修复。

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

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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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