gpt4 book ai didi

c# - 我可以安全地忽略 CodeAnalysis 警告 : replace string == "" with string. IsNullOrEmpty 吗?

转载 作者:行者123 更新时间:2023-11-30 13:34:53 26 4
gpt4 key购买 nike

我有类似这样的代码:

string s = CreateString();
if (s == "") foo(s);

如果 s 等于 "",则应调用 foo。如果字符串为 null,这种情况永远不会发生,那么 NullReferenceException 就可以了(因为这毕竟是一种异常情况)。

CodeAnalysis 告诉我要测试 s.IsNullOrEmpty。这会以一种意想不到的方式改变功能。

性能不是问题。

抑制相关的 CA1820 警告是否安全?

编辑:更新了代码示例和文本以更好地反射(reflect)我的情况。

编辑:这是(略有改动的)实际代码(在标准 IXmlSerializable 实现中):

public void ReadXml (XmlReader reader)
// ...
string img = reader.ReadElementString ("Image");
if (img != "") {
Image = Image.FromFile(img);
}
// ...

最佳答案

对于空值,它的行为会有所不同,所以这取决于你想要发生什么;你提到 NullReferenceException 没问题,但引用的代码中没有任何内容会引发此问题,因此它可能会导致下游出现意外错误。

我从来没有,但我总是想添加:

static bool IsNullOrEmpty(this string value) {
return string.IsNullOrEmpty(value);
}

所以我可以使用:

if (s.IsNullOrEmpty()) foo();

关于c# - 我可以安全地忽略 CodeAnalysis 警告 : replace string == "" with string. IsNullOrEmpty 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1661024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com