MS Analyzer string.IsNullOrEmpty
empfiehlt stattdessen die Verwendung von entweder mit null oder einem leeren Zeichenfolge aus Performance-Gründen comparisingWarum ist string.IsNullOrEmpty schneller als ein Vergleich?
Warning 470 CA1820: Microsoft.Performance: Ersetzen Sie den Aufruf von 'string.operator == (string, string)' in ... mit einem Aufruf von 'String.IsNullOrEmpty'.
Warum ist das? Sollte nicht die Anforderung, eine andere Funktion aufzurufen und eine Referenz an ein Objekt zu übergeben, das dann sowieso irgendeine Art von Vergleich durchführen muss, teurer sein, als den Vergleich selbst durchzuführen?
Beispielcode
void Foo()
{ // throws a warning
string x = "hello world";
if (x == null || x == "")
{
Console.WriteLine("Empty");
}
}
void Foo()
{ // doesn't throw it
string x = "hello world";
if (string.IsNullOrEmpty(x))
{
Console.WriteLine("Empty");
}
}
Zeigen Sie den Code Sie vergleichen 'String.IsNullOrEmpty' mit. – MarcinJuraszek
mögliche Antwort http://stackoverflow.com/questions/10360370/why-is-string-isnullorempty-faster-than-string-length – Sachin
http://www.dotnetperls.com/isnullorempty – Cynede