我有类似这样的代码:
string s = CreateString();
if (s == "") foo(s);
如果 s 等于 "",则应该调用 foo。如果 string 为 null,这永远不会发生,那么 NullReferenceException 就可以了(因为这毕竟是一种例外情况)。
CodeAnalysis 告诉我测试 s.IsNullOrEmpty。这会以意想不到的方式改变功能。
性能不是问题。
抑制相关的 CA1820 警告是否安全?
编辑:更新代码示例和文本以更好地反映我的情况。
编辑:这是(稍微改变的)实际代码(它在标准的 IXmlSerializable 实现中):
public void ReadXml (XmlReader reader)
// ...
string img = reader.ReadElementString ("Image");
if (img != "") {
Image = Image.FromFile(img);
}
// ...