晨鸟科技

标题: string.Insert方法应该注意其返回值 [打印本页]

作者: Star    时间: 2011-2-22 11:02
标题: string.Insert方法应该注意其返回值
本帖最后由 Star 于 2011-2-22 11:08 编辑
, V) j, p2 Q& ^( w* M5 X
1 b% c5 n" m% d8 s' P! c# P! R% f: o这一久在给EB_EXP debug,有个地方需要对字符串进行Insert处理,原来的程序是这样写的:

  1. # M) \3 Y% J' O8 x7 w+ H1 f# \
  2. result.Insert(result.IndexOf("</p>"), " (单位:分钟)");" o1 w: N4 ~3 X
复制代码
调试过程中,发现返回的这个result的值没有改变,仍然是执行Insert操作之前的值,于是去网上查,MSDN(http://msdn.microsoft.com/en-us/library/system.string.insert.aspx)上有一条注意说明:
3 L; T8 M: F8 j. a. _+ }$ w* U+ n6 D8 B Note  - \5 ~$ g5 j% L" K
   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.
+ u" ?( B6 t$ B' l/ K
5 m# M% ?: I; Y, h3 }, o: I看了这句话就知道了,原来string的Insert操作没有修改result的值,所以返回result的话,是不对的,应该返回Insert方法的返回值,如下:
  1. 0 j# q5 S) X1 o6 N: U
  2. result = result.Insert(result.IndexOf("</p>"), " (单位:分钟)");
    4 i& |2 a/ P$ }9 P) t; ]3 y
复制代码

作者: xueshuai    时间: 2011-2-22 17:08
消灭零回复,还楼主自尊~~;P
作者: Star    时间: 2011-2-28 15:24
回复 xueshuai 的帖子
; q# i" V8 Y7 n# I1 G囧。。。% ^8 d0 Z/ ~4 W; l+ r3 `

9 `( K) H6 b& [' i5 `( T2 X   




欢迎光临 晨鸟科技 (http://www.chenniao.com/cprofessor/) Powered by Discuz! X3.2