2010-11-22 4 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

텍스트를 변수 또는 컨트롤에 다시 지정해야합니다.

replace 함수는 현재 인스턴스를 변경하지 않고 문자열을 반환합니다.

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

문자열이 변경되지 않으므로 문자열의 모든 함수가 새 인스턴스를 반환합니다. 따라서 함수의 효과를 보려면 결과를 할당해야합니다. Replace의 문서에서

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

:

는 에 지정된 문자열의 모든 발생은 현재 인스턴스가 지정된 다른 문자열로 대체하는 새로운 캐릭터 라인을 돌려줍니다.

+0

감사 브라이언 :) – Ram

+0

@ 램 : 내 기쁨. –

1

string은 C#이 불변임을 잊지 마십시오. 따라서, Replace이 제 위치에서 그것을 바꿀 수있는 방법이 없습니다. 대신 교체 완료된 새 복사본을 반환합니다.

관련 문제