在用C#写程序的过程中,向以下实例代码的使用已经成为了一种习惯:
    
string s = "a";
s += "b";
由于在.net中,对于string的操作不会改变原来的串,而是创建一个新串进行字符串的操作,因此上面的代码和下面这段代码的作用是一样:
string s = "a";
string temp = new String( s + "b");
string s = temp; //"a"就进入了垃圾回收器管理。
      
可以看到,编译器做了很多多余的工作,如果程序中有大量的这种字符串操作,对于程序的性能损耗是很厉害的。
我们可以使用StringBuilder解决这个问题。
          
StringBuilder builder = new StringBuilder("a");
builder.Append("b");
string s = builder.ToString();
     
string s = "a";
s += "b";
由于在.net中,对于string的操作不会改变原来的串,而是创建一个新串进行字符串的操作,因此上面的代码和下面这段代码的作用是一样:
string s = "a";
string temp = new String( s + "b");
string s = temp; //"a"就进入了垃圾回收器管理。
可以看到,编译器做了很多多余的工作,如果程序中有大量的这种字符串操作,对于程序的性能损耗是很厉害的。
我们可以使用StringBuilder解决这个问题。
StringBuilder builder = new StringBuilder("a");
builder.Append("b");
string s = builder.ToString();
                    
                
                
            
        
浙公网安备 33010602011771号