几分钟前我学到的东西上StackOverflow,我想共享它与你。为字符串是特定文化的比较,我们通常使用的String.Compare。但很少,人们会看到另一个API调用。NET的整箱CultureInfo.Compare()。
所以我就开始挖,看到实际上它们之间的区别是什么,其实他们的工作原理相同。内IL后,我才知道的String.Compare,其实不打电话或使用的CultureInfo.Compare()的API。public static int Compare(string strA, string strB, CultureInfo culture, CompareOptions options)
{
if (culture == null)
{
throw new ArgumentNullException(culture?;
}
return culture.CompareInfo.Compare(strA, strB, options);
}
所以以下我的意见,在此:如果输入的String.Compare首先检查是空的CultureInfo参数。除了在稍后阶段,它的字符串参数的检查,但不CultureInfo.Compare不检查空CultureInfo的。CultureInfo.Compare API的内部调用的String.Compare()API,如果,OrdinalIgnoreCase是通过的CompareOptions参数。
因此,基于上述各点,它是最好的使用String.Compare API本身,因为它首先不空的检查和String类是首创置业类。我相信它也避免了其他开发商在寻找你的代码混乱,如果你使用一些替代品,在这种情况下,CultureInfo.Compare的API。
这是所有现在,随时欢迎您的意见。