晨鸟科技

 找回密码
 注册
搜索
查看: 12845|回复: 4
打印 上一主题 下一主题

string.Insert方法应该注意其返回值

[复制链接]
跳转到指定楼层
楼主
发表于 2011-2-22 11:02:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Star 于 2011-2-22 11:08 编辑
8 e8 {: z$ ~  @4 V; ~+ |" W% K, Z; x2 m7 [8 C) J& Z1 m1 Q* W
这一久在给EB_EXP debug,有个地方需要对字符串进行Insert处理,原来的程序是这样写的:
  1. $ [' ~  v& @+ D7 g! [) l
  2. result.Insert(result.IndexOf("</p>"), " (单位:分钟)");- L, n5 i( p5 m, u
复制代码
调试过程中,发现返回的这个result的值没有改变,仍然是执行Insert操作之前的值,于是去网上查,MSDN(http://msdn.microsoft.com/en-us/library/system.string.insert.aspx)上有一条注意说明:
  e& |: M: R  a2 n9 g8 E! O2 Y Note  
, b+ x5 [9 u" G+ [' 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.3 Q# N. c. a0 V' f6 w6 I

+ z4 c5 ~# j2 Z' i4 ~) P! S看了这句话就知道了,原来string的Insert操作没有修改result的值,所以返回result的话,是不对的,应该返回Insert方法的返回值,如下:

  1. . k2 F( I6 D8 Z2 @
  2. result = result.Insert(result.IndexOf("</p>"), " (单位:分钟)");- ]0 c" u5 R+ U- {" n4 K! a
复制代码
沙发
发表于 2011-2-22 17:08:13 | 只看该作者
消灭零回复,还楼主自尊~~;P
板凳
 楼主| 发表于 2011-2-28 15:24:49 | 只看该作者
回复 xueshuai 的帖子- y6 a, }: e- V& s9 b0 G* H5 o, Z. a
囧。。。
, [# Y" p/ F& z5 `4 C7 {3 W! E
" C8 t9 v4 h. Q$ T' \9 i   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|晨鸟科技 ( 沪ICP备09012675号 )

GMT+8, 2026-3-14 22:17 , Processed in 6.069924 second(s), 9 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表