标题: string.Insert方法应该注意其返回值 [打印本页] 作者: Star 时间: 2011-2-22 11:02 标题: string.Insert方法应该注意其返回值 本帖最后由 Star 于 2011-2-22 11:08 编辑 , J6 k2 s2 f1 q" @7 h+ ^% J
3 U0 j, b' r3 T) @! M这一久在给EB_EXP debug,有个地方需要对字符串进行Insert处理,原来的程序是这样写的:
$ c, a, e1 V; \/ z( C. \
result.Insert(result.IndexOf("</p>"), " (单位:分钟)");/ F: l6 @0 F* p
复制代码
调试过程中,发现返回的这个result的值没有改变,仍然是执行Insert操作之前的值,于是去网上查,MSDN(http://msdn.microsoft.com/en-us/library/system.string.insert.aspx)上有一条注意说明:9 ]5 u t$ m6 a( y( A- o( T! [6 N, c
Note * p/ o# X5 Z: r6 @% ~
This method does not modify the value of the current instance. Instead, it returns a new string in which value is inserted into the current instance.3 u/ U( |/ G/ {7 X% m
+ m" R3 D; `$ ~
看了这句话就知道了,原来string的Insert操作没有修改result的值,所以返回result的话,是不对的,应该返回Insert方法的返回值,如下:
7 d( Z& U2 q0 G
result = result.Insert(result.IndexOf("</p>"), " (单位:分钟)"); / j4 V9 A( c* O8 N' R; C! k Z
复制代码
作者: xueshuai 时间: 2011-2-22 17:08
消灭零回复,还楼主自尊~~;P 作者: Star 时间: 2011-2-28 15:24 回复 xueshuai 的帖子! ^( Y' M7 F F2 C
囧。。。! d# Y/ f0 A$ v# {
; w1 }9 x# L9 C# R: Q9 e) i