标题: string.Insert方法应该注意其返回值 [打印本页] 作者: Star 时间: 2011-2-22 11:02 标题: string.Insert方法应该注意其返回值 本帖最后由 Star 于 2011-2-22 11:08 编辑 ' Z. f! q0 H7 v
1 J; i1 e8 Y( R l5 ~这一久在给EB_EXP debug,有个地方需要对字符串进行Insert处理,原来的程序是这样写的:
3 k' j- ?( A! a3 Y2 e8 R% W8 e* Y
result.Insert(result.IndexOf("</p>"), " (单位:分钟)");2 Q* C b+ u! R9 n
复制代码
调试过程中,发现返回的这个result的值没有改变,仍然是执行Insert操作之前的值,于是去网上查,MSDN(http://msdn.microsoft.com/en-us/library/system.string.insert.aspx)上有一条注意说明: 9 {% B" Y5 R( j Note 8 {1 y3 @+ e: I' H/ C, Z 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.6 D/ l8 i. W Z2 R" E7 B. |0 d
, C9 U/ y" I. Y看了这句话就知道了,原来string的Insert操作没有修改result的值,所以返回result的话,是不对的,应该返回Insert方法的返回值,如下:
1 ?4 _4 y: g9 z' W9 b
result = result.Insert(result.IndexOf("</p>"), " (单位:分钟)");0 E) \5 o) t; D' v: ^# B
复制代码
作者: xueshuai 时间: 2011-2-22 17:08
消灭零回复,还楼主自尊~~;P 作者: Star 时间: 2011-2-28 15:24 回复 xueshuai 的帖子 8 o( w" U, X4 c" z; x6 P5 T4 ~3 b囧。。。) b+ g- k2 y$ I
0 R+ W, m0 U1 L6 U2 t* Z8 c