我住在土耳其,我需要在我的计划中大写一把钥匙.我不得不使用ToUpper(新的CultureInfo("en-US",false))而不是ToUpper(),因为此函数在设置为土耳其文化的计算机中表现不同(见下图).然后我看到还有文化不变的上层函数:ToUpperInvariant().
我搜索但我找不到这些功能之间的任何信息差异.有什么不同吗?
来源:http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html
ToUpper()与 相同ToUpper(CultureInfo.CurrentCulture),而ToUpperInvariant()与 相同ToUpper(CultureInfo.InvariantCulture),注释暗示您已经明白这一点。
所以当然这里有区别 -CultureInfo.InvariantCulture应该只在不与人类(解析器等)交互时使用,因为它给出了一致的结果,而ToUpper(CultureInfo.CurrentCulture) 在计算机、服务器等之间变化很大。
CultureInfo.InvariantCulture是一种类似于但不等于 en-US 的受英语启发的文化,不受任何国家或地区的约束,并且不能由用户自定义(如文档中明确说明的那样)。
至于明确回答您的问题ToUpper- 是的,存在差异。在所有这些情况下(如下所示),与小写源ToUpperInvariant()相同char:
lc en-US Invariant
== ===== =========
µ ? µ
? I ?
? S ?
? ? ?
? ? ?
? ? ?
? ? ?
? ? ? // ???????this one lives in the 4th dimension.
? ? ?
? ? ?
? ? ?
? ? ?
? ? ?
? ? ?
? ? ?
? ? ?
? ? ?
? ? ?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3815 次 |
| 最近记录: |