string.ToLower和TextInfo.ToLower之间的区别

时间:2012-05-28 14:01:28

标签: c# .net

两者有什么区别?什么时候应该使用它们?

2 个答案:

答案 0 :(得分:2)

  

字符串上的 ToLower 和ToLowerInvariant方法在调用时实际调用TextInfo虚拟属性。因此,它们始终承担此虚拟属性访问的开销。字符串类型方法在结果值上没有区别,但在某些情况下速度较慢。

The full article + Benchmark

为简单起见,请使用str.ToLower()并忘记此问题!

答案 1 :(得分:2)

没有。

string.ToLower在幕后调用TextInfo.ToLower

来自String.cs:

    // Creates a copy of this string in lower case. 
    public String ToLower() {
        return this.ToLower(CultureInfo.CurrentCulture); 
    }

    // Creates a copy of this string in lower case.  The culture is set by culture.
    public String ToLower(CultureInfo culture) { 
        if (culture==null) {
            throw new ArgumentNullException("culture"); 
        } 
        return culture.TextInfo.ToLower(this);
    }