C# - 什么是特定于文化的?

C# - What is Culture-Specific?

我是 C# 的新手。 ReSharper 警告我使用 "string.IndexOf" 是特定于文化的。什么是特定文化?

Resharaper 是一个扩展,它遵循一些编码标准,如果任何方法接受文化作为 overload.then 在您的代码中提供这些功能是非常好的做法

comparisonType

parameter 指定使用当前或固定区域性搜索值参数,使用 case-sensitive 或 case-insensitive 搜索,并使用单词或序号比较规则。

More Info

文化指的是语言,例如美式英语 (en-us) 和英式英语 (en-gb)(就 .NET 而言,显然是相同的语言但不同的文化)。使用 "string.IndexOf" 时可能很重要的原因是因为某些字符(想想带有重音符号和元音变音的字符)在不同的文化中得到不同的对待。没有足够的 unicode 值来表示每种语言中的每个字符,因此在某些文化设置中,某些字符组合(例如 'a' 后跟变音符号)组合成单个字符,但在其他文化设置中,它们可能不会是。因此,根据设置的区域性,在带有变音符号的字符串上使用 "string.IndexOf" 可能会产生不同的结果。但在大多数情况下,尤其是如果您只是在学习,字符串 class 的默认行为就可以了。