Was ist der beste Weg, um leere Zeichenketten zu prüfen (ich frage nicht nach der Initialisierung! ) in C # bei der Betrachtung der Codeleistung ? (Siehe Code unten)
string a;
// some code here.......
if(a == string.Empty)
oder
if(string.IsNullOrEmpty(a))
oder
if(a == "")
jede Hilfe wäre dankbar. :)
Vergleiche Strings nicht mit String.Empty
oder ""
, um nach leeren Zeichenfolgen zu suchen.
Vergleichen Sie stattdessen mit String.Length == 0
Der Unterschied zwischen string.Empty
und ""
ist sehr klein. String.Empty
erstellt kein Objekt, während ""
legt zur Überprüfung ein neues Objekt im Speicher an. Daher ist string.empty in der Speicherverwaltung besser. Aber der Vergleich mit string.Length == 0
ist noch schneller und der bessere Weg, nach einer leeren Zeichenfolge zu suchen.
Ich denke, der beste Weg ist if(string.IsNullOrEmpty(a))
, weil es schneller und sicherer ist als die anderen Methoden.
string.IsNullOrEmpty(a)
es werden beide NULL || geprüft LEEREN
dies ist die Implementierung:
public static bool IsNullOrEmpty(string value)
{
if (value != null)
{
return (value.Length == 0);
}
return true;
}
Sie können auch Länge verwenden
string input = "";
if (input != null)
{
if (input.Length == 0)
{
}
}
Erstellen Sie eine Erweiterungsmethode für die vollständige Prüfung:
public static bool IsEmpty(this string s)
{
if(s == null) return true;
return string.IsNullOrEmpty(s.Trim()); // originally only (s)
}
Entschuldigung, kein guter Code, behoben. Jetzt erfahren Sie, ob die Zeichenfolge leer ist oder ob sie nach dem Zuschneiden leer ist.
Eine späte Ankunft:
if a == ""
wird die Warnung CA1820 zur Codeanalyse auslösen, daher sollten Sie dies auf keinen Fall tun. Eine vollständige Analyse finden Sie unter CA1820: Test auf leere Zeichenfolgen mithilfe der Zeichenfolgenlänge
String. Leerer Wert wird nur zur Laufzeit "" entschlüsselt, der Wert ist jedoch zur Kompilierzeit selbst bekannt.
Das ist der einzige Unterschied zwischen diesen beiden.
Aber wenn M $ morgen aus irgendeinem Grund beschließt, den leeren Zeichenfolgenwert als '' anstelle von "" zu verwenden, muss Ihr Code überall geändert werden. In diesem Fall ist es am besten, String.Empty zu verwenden.
Es ist die gleiche Vorgehensweise wie bei Path.Combine.