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
War es hilfreich?

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()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top