现在的位置: 首页 > 综合 > 正文

C#的Replace函数,使用函数作为的参数需要注意

2012年04月03日 ⁄ 综合 ⁄ 共 381字 ⁄ 字号 评论关闭
#的Replace函数,有关它的参数需要注意:

    如果它的参数是一个表达式,系统会先计算表达式做预处理,再执行替换操作。

  比如(GetNameByID为一个函数):
        String  strSource="这是一个示例";
      strSource=strSource.Replace("姓名",GetNameByID(1));
  很显然,strSource是不包含“姓名”的,所以也不会执行任何替换。但是,每执行一次这行替换代码,GetNameByID都会被调用一次。如果GetNameByID是更复杂的逻辑,或者是替换操作在一个循环中,将会极大地影响系统效率。
  建议修改为:
      if(strSource.IndexOf("姓名")>-1)
    {
          strSource=strSource.Replace("姓名",GetNameByID(1));
    }

【上篇】
【下篇】

抱歉!评论已关闭.