2010-11-22 21 views
0

Ich denke, ich brauche etwas Hilfe für die String-Replace-Funktion. Dieser ersetzt nicht und gibt mir dasselbe zurück. Was könnte das Problem sein, Leute?Zeichenfolge. Funktionsproblem ersetzen!

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>"); 

Vielen Dank im Voraus!

Antwort

8

Sie müssen den Text wieder der Variablen oder dem Steuerelement zuweisen.

Die Ersetzungsfunktion gibt eine Zeichenfolge zurück, die aktuelle Instanz wird nicht geändert.

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

Die vorhandene Instanz wird nicht geändert, sie gibt eine Instanz mit den Änderungen zurück.

Von MSDN ...

Diese Methode ändert nicht den Wert der aktuellen Instanz ab. Stattdessen gibt es eine neue Zeichenfolge zurück, in der alle Vorkommen von oldValue durch newValue ersetzt werden.

Daher müssen Sie den zurückgegebenen Wert speichern und auf Ihrem Etikett festlegen oder einfach Ihr Etikett auf den zurückgegebenen Wert setzen.

4

String ist unveränderlich, daher geben alle Funktionen in String neue Instanzen zurück. Um den Effekt der Funktion zu sehen, müssen Sie das Ergebnis zuweisen.

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

Aus der Dokumentation von Replace:

Gibt einen neuen String, in dem alle Vorkommen einer bestimmten Zeichenfolge in die aktuelle Instanz mit eine andere angegebene Zeichenfolge ersetzt werden.

+0

Danke Brian :) – Ram

+0

@Ram: Mein Vergnügen. –

1

Vergessen Sie nicht, dass string C# unveränderlich ist. Daher gibt es keine Möglichkeit, dass Replace es an Ort und Stelle ändern könnte. Stattdessen wird eine neue Kopie mit dem Ersetzungsvorgang zurückgegeben.