J'ai obtenu un code similaire à ceci:Puis-je ignorer en toute sécurité CodeAnalysis warning: remplacer string == "" par string.IsNullOrEmpty?
string s = CreateString();
if (s == "") foo(s);
Si s est égal à "" devrait être appelé foo. Si la chaîne est nulle, ce qui ne devrait jamais arriver, alors une exception NullReferenceException est bonne (car c'est, après tout, une situation exceptionnelle). CodeAnalyse me dit de tester pour s.IsNullOrEmpty.
Cela modifierait la fonctionnalité de manière non intentionnelle.
Les performances ne sont pas un problème.
Est-il sécuritaire de supprimer l'avertissement CA1820 associé?
Éditer: Échantillon de code mis à jour et texte pour mieux refléter mon cas.
Edit: Ce est le (légèrement modifié) code réel (il est dans une implémentation standard IXmlSerializable):
public void ReadXml (XmlReader reader)
// ...
string img = reader.ReadElementString ("Image");
if (img != "") {
Image = Image.FromFile(img);
}
// ...
Il vous manque un "ceci" à l'intérieur de la parenthèse pour faire de la méthode une extension;) De toute façon je l'ai utilisé depuis longtemps maintenant ... il se lit beaucoup mieux. – em70
J'ai déjà ajouté le "this" manquant dans un "oups je suis un muppet" edit ;-p –
Vous Britanniques et vos aphorismes. Ça me donne envie de déménager au Royaume-Uni. – tvanfosson