C#中ToUpper()和ToUpperInvariant()的区别
世界分为若干个文化和区域,RFC 1766 定义了文化的名称,这些名称根据语言和国家或区域的不同在世界各地使用。
例如en-AU、en-CA、en-GB和en-US分别用于表示澳大利亚、加拿大、英国和美国的英语。
不同的文化和区域有很大差异,比如阿拉伯语从右往左显示。
ToUpper() 就是按CurrentCulture把所有字母转换为大写。
ToUpperInvariant() 使用固定区域性的大小写规则。固定区域性表示不区分区域性。 它与英语语言关联,但不与任何国家/地区关联。
《CLR via C#》, 其中有一个章节讲String类型。
当进行不区分大小写的字符串对比时,应当尽量多的使用ToUpperInvariant,因为一方面CLR对转换为大写的操作进行了专门的优化,使其性能更加卓越;另一方面ToUpperInvariant和ToLowerInvariant忽略了对语言文化的处理,因此性能比ToUpper和ToLower要快得多。
金蝶云星空中对字符串的处理推荐使用:
将StringComparison.CurrentCultureIgnoreCase改成StringComparison.OrdinalIgnoreCase
将StringComparer.CurrentCultureIgnoreCase改成StringComparer.OrdinalIgnoreCase
将.ToUpper()方法代码替换成.ToUpperInvariant()
将.ToLower()方法改成.ToLowerInvariant()
C#中ToUpper()和ToUpperInvariant()的区别
世界分为若干个文化和区域,RFC 1766 定义了文化的名称,这些名称根据语言和国家或区域的不同在世界各地使用。例如en-AU、en-CA、en-GB和...
点击下载文档
上一篇:元数据插件介绍下一篇:markdown-Typora介绍
本文2024-09-16 17:20:11发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-15033.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章