У меня есть код, подобный этому:
string s = CreateString();
if (s == "") foo(s);
Если s равно "", следует вызвать foo. Если строка имеет значение null, что никогда не должно происходить, тогда NullReferenceException вполне подходит (поскольку это, в конце концов, исключительная ситуация).
CodeAnalysis говорит мне проверить s.IsNullOrEmpty. Это изменило бы функциональность непреднамеренно.
Производительность не проблема.
Безопасно ли подавлять соответствующее предупреждение CA1820?
Редактировать: Обновлен пример кода и текст, чтобы лучше отражать мой случай.
Редактировать: Это (слегка измененный) фактический код (в стандартной реализации IXmlSerializable):
public void ReadXml (XmlReader reader)
// ...
string img = reader.ReadElementString ("Image");
if (img != "") {
Image = Image.FromFile(img);
}
// ...