Wiederkehrende String Inhalt
-
05-09-2019 - |
Frage
Trivial Ich weiß, aber nur interessiert
Ich habe eine Stringvariable bekam, dass ich den Inhalt, zurückkehren wollen, aber wenn es leer ist Ich will zurückkehren „|“, so ist es am besten stringbuilder.tostring in der Vergleichsrechnung z
zu verwenden, If lReturnStringBuilder.ToString = String.Empty Then
lReturnStringBuilder.Append("|")
End If
return lreturnStringBuilder.tostring
oder ist es am besten, es in eine Zeichenfolge zu konvertieren, und vergleichen Sie, dass, auch wenn das bedeutet, eine neue Variable und die Zuweisung von Zeichenfolge-Speicherplatz für den z Laden bis
Dim lString as string = lReturnStringBuilder.ToString
if lString = string.empty then
lstring = "|"
end if
return lString
Lösung
Dies ist die Art von Mikro-Optimierung, die Sie wirklich nur brauchen nicht zu befürchten. Allerdings werde ich schreiben, was ich denke würde, ist eleganteste (und effizient) Weg, dies trotzdem zu tun:
Dim result = If(lReturnString.Length = 0, "|", lReturnString.ToString())
Das erspart eine leere String Konvertierung in einen String unnötig (oder dann anhängen Aufruf, die auf jeden Fall nicht erforderlich ist). Beachten Sie die Verwendung der Inline-If-Anweisung (VB 9.0), was tut nicht beiden Aussagen bewertet in einem Fall, wie es ein Sprachkonstrukt und keine Funktion ist (genau entspricht einen normalen If-Anweisung mit Variablenzuweisungen).
Andere Tipps
Sie sind die Aufteilung der „String Space“, unabhängig davon, was Sie tun. Die ToString-Funktion gibt Ihnen eine Zeichenfolge, ob Sie den Wert einer Variablen zuweisen oder nicht. So würde ich vorschlagen, dass Sie am besten ab Zuweisung der Wert von ToString () auf eine Variable sein würde und testen dann die Variable Wert für einen leeren String. So etwas (sorry, ich bin ein C # Kerl, aber dies wird hoffentlich in VB arbeiten):
Dim returnVal as String
returnVal = lReturnString.ToString()
If String.IsNullOrEmpty(returnVal) Then
returnVal = "|"
End If
Sie sollten es vermeiden, ToString auf der String aufrufen und dann mehr zu ihm anhängen. Wenn Sie die ToString-Methode aufrufen, erhalten Sie die Zeichenfolge, die intern von der String verwendet wurde. Wenn Sie dann mehr auf die String anhängen, hat es eine neue Zeichenfolge zuzuweisen.
Sie einfach die Length-Eigenschaft, um zu überprüfen, ob der String leer ist, und wenn es Du ist musst nicht den String beinhaltet das Ergebnis zu erstellen.
If lReturnStringBuilder.Length = 0 Then
Return "|"
Else
Return lReturnStringBuilder.ToString()
End If
könnten Sie verwenden die Länge Eigentum Ihrer Stringbuilder-Objekt. Auf diese Weise können Sie vermeiden, ToString (), um den ersten Aufruf:
If lReturnStringBuilder.Length = 0 Then
lReturnStringBuilder.Append("|")
End If
Return lReturnStringBuilder.ToString()
oder
If lReturnStringBuilder.Length = 0 Then
Return "|"
End If
Return lReturnStringBuilder.ToString()