我有类似的代码如下:我可以安全地忽略CodeAnalysis警告:将string ==“”替换为string.IsNullOrEmpty?
string s = CreateString();
if (s == "") foo(s);
如果s等于“”,富应该叫。如果字符串为空,而这绝不会发生,那么NullReferenceException就没有问题了(毕竟,这是一种特殊情况)。
CodeAnalysis告诉我测试s.IsNullOrEmpty。这会以一种臆测的方式改变功能。
性能不是问题。
抑制相关CA1820警告是否安全?
编辑:更新的代码示例和文字来更好地反映我的情况。
编辑:这是(轻微改变)实际的代码(这是在标准实施IXmlSerializable的):
public void ReadXml (XmlReader reader)
// ...
string img = reader.ReadElementString ("Image");
if (img != "") {
Image = Image.FromFile(img);
}
// ...
你在方括号内缺少一个“this”,使得该方法成为扩展;) 无论如何,我已经使用了很长一段时间...它只是读得好多了。 – em70 2009-11-02 12:36:42
我已经在“哎呀,我是个木偶”中加入了缺少的“this”编辑; -p – 2009-11-02 12:38:07
你是英国人和你的格言。让我想搬到英国。 – tvanfosson 2009-11-02 12:47:27