返回首页


几分钟前我学到的东西上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。
这是所有现在,随时欢迎您的意见。

回答

评论会员: 时间:2
akemper:我喜欢你的文章。每个目标机器上没有安装。NET框架4.0因此,有趣的展示,如何可以实现并行的"手",而不是使用新功能。请检查你的代码。的语句被打破,可能是由于HTML编码。"行动机构"参数不正确的VS2010Express中编译。它应该是"Actionlt;intgt;身体"?正确的格式将提高可读性。谢谢!阿克塞尔・肯珀