2017-02-04 40 views
2

我在C#上很新。 ReSharper警告说,使用“string.IndexOf”是文化特定的。什么是文化特定?C# - 什么是文化特定?

+1

阅读此:https://msdn.microsoft.com/en-us/library/dd465121(v=vs.110).aspx –

回答

2

文化是指语言例如美国英语(EN-US)和英国英语(en-GB)(显然同一种语言,但不同的文化就.NET而言)。使用“string.IndexOf”时可能很重要的原因是某些字符(认为带有重音符号和变音符号的字符)在不同的文化中得到不同的处理。没有足够的unicode值来表示每种语言中的每个字符,因此在某些文化设置中,某些字符组合(例如'a'后跟元音变音符号)会合并为单个字符,但在其他文化环境中可能不会。因此,对带有元音变音符的字符串使用“string.IndexOf”可能会根据设定的区域性产生不同的结果。但是在大多数情况下,特别是如果你只是在学习,字符串类的默认行为将会很好。

1

Resharaper是扩展遵循一些编码标准如有接受文化为overload.then方法是在你的代码提供这些功能非常好的做法

comparisonType 

参数指定要搜索的值参数使用当前或不变文化,使用区分大小写或不区分大小写的搜索,并使用单词或有序比较规则。

More Info