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

7

我对C#比较新。ReSharper警告我使用“string.IndexOf”是与文化有关的。什么是与文化有关的?


2
阅读此文:https://msdn.microsoft.com/zh-cn/library/dd465121(v=vs.110).aspx - John Koerner
2个回答

7

文化指的是语言,例如美式英语(en-us)和英式英语(en-gb)(就.NET而言,同一种语言但不同的文化)。当使用“string.IndexOf”时,它可能很重要的原因是某些字符(带有重音符号和变音符号的字符)在不同的文化中会以不同的方式处理。Unicode值不足以表示每种语言中的每个字符,因此在某些文化设置中,某些字符组合(例如一个a后面跟着一个变音符号)被组合成一个单个字符,但在其他文化设置中可能不会这样。因此,在具有变音符号的字符串上使用“string.IndexOf”可能会产生不同的结果,具体取决于所设置的文化。但在大多数情况下,特别是如果您只是在学习,字符串类的默认行为将是完全可以接受的。


1

Resharper是一个扩展程序,用于遵循某些编程标准,如果有任何方法接受文化作为重载,则在您的代码中提供这些功能是非常好的实践。

comparisonType

该参数指定使用当前或不变的区域设置,使用区分大小写或不区分大小写搜索,以及使用单词或序数比较规则来搜索值参数。

更多信息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接