前提是不对字符串进行修改

解决方案 »

  1.   

    我们知道,在MFC中,CString就要比CString&慢很多,请问.NET里面是否也是如此
      

  2.   

    string在.net是一个class 不是struct 所以引用不引用一样
      

  3.   

    ref string : 引用传递
    string :  值传递应该是ref string快,它不要申请对象空间. 直接往地址里面写数据。就像在需要房子时,要重新建立一个房子,还是去买一个现成的房子一样.
      

  4.   

    经过反汇编调试,没有看到字符串的复制,这证明的确有无ref都一样。这是对System.ValueType的说明中的一段话:
    数据类型分隔为值类型和引用类型。值类型要么是堆栈分配的,要么是在结构中以内联方式分配的。引用类型是堆分配的。引用类型和值类型都是从最终的基类 Object 派生出来的。当值类型需要充当对象时,就在堆上分配一个包装(该包装能使值类型看上去像引用对象一样),并且将该值类型的值复制给它。该包装被加上标记,以便系统知道它包含一个值类型。这个进程称为装箱,其反向进程称为取消装箱。装箱和取消装箱能够使任何类型像对象一样进行处理。在System.ValueType的派生类中有,System.Boolean,System.Int32等常规的值类型,但是没有String,所以string的确是否引用都有一样的效率。甚至可能不引用效率更高,因为若引用的话,函数内部如果修改了局部变量,还要传回调用的函数