出于性能原因, MS Analyzer 建议使用string.IsNullOrEmpty
它而不是与 null 或空字符串进行比较
警告 470 CA1820:Microsoft.Performance:将 ... 中对“string.operator ==(string, string)”的调用替换为对“String.IsNullOrEmpty”的调用。
这是为什么?调用另一个函数并将其传递给某个对象的要求不应该比执行比较本身更昂贵吗?
示例代码
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");
}
}