2010-11-22 80 views
0

我想我需要一些字符串替换功能的帮助。这一个不会取代,并给我同样的事情回来。什么可能是这个问题,伙计们?字符串。替换功能问题!

FormattedURl = mysite.com/Merchant.aspx?1=lkdflfdfgj3242 

lblclick.Text.Replace("<a class=linkclass href=http://www.mysite.com/ target=_blank > </a>", 
"<a class=linkclass href=" + FormattedURL1 + "target=_blank ></a>"); 

预先感谢您!

回答

8

您需要将文本分配回变量或控件。

替换函数将返回一个字符串,而不是更改当前实例。

lblclick.Text = lblclick.Text.Replace("<a class=linkclass href=http://www.mysite.com/ target=_blank > </a>", 
"<a class=linkclass href=" + FormattedURL1 + "target=_blank ></a>"); 
1

它不修改现有实例,它会返回一个带有更改的实例。

从MSDN ...

此方法不会修改当前实例的值 。相反,它 返回一个新字符串,其中所有 出现的oldValue被newValue替换为 。

因此,您需要存储返回的值并将其设置在您的标签上,或者将您的标签设置为返回值。

4

字符串是不可变的,所以字符串上的所有函数都返回新的实例。因此要查看功能的效果,您必须分配结果。

lblclick.Text = lblclick.Text.Replace("<a class=linkclass href=http://www.mysite.com/ target=_blank > </a>", "<a class=linkclass href=" + FormattedURL1 + "target=_blank ></a>"); 

Replace文档:

返回所有 出现指定字符串的 当前实例与 另一指定字符串替换一个新的字符串。

+0

谢谢Brian :) – Ram 2010-11-22 18:33:33

1

不要忘了string是c#是不可变的。因此,Replace没有办法改变它。相反,它会在替换完成后返回一个新副本。