ca n'a RIEN à voir avec de la clarté, celui qui utilise "" ne connait pas la CLR tout simplement. les bases types sont par valeur mais pas String, or si tu fais "" tu instancies un objet qui contient "", alors que String.Empty non.
si on suit votre logique, avec dix champs à reset, vous faites dix fois ="" et donc vous instanciez dix objets qui ne servent à rien. pour quelle raison? parce que "ca revient au même"? :D
c'est sûr que si le résultat c'est de mettre à vide, on peut faire ca de mille façons maintenant, y a la façon propre et la façon sale. Votre "", c'est sale car contre-performant.
de la meme façon que je vois souvent
Code:
1 2 3 4
| if( maChaine == null || maChaine == "") // ou String.Empty)
{
} |
là encore c'est sale car il FAUT utiliser String.IsNullOrEmpty(maChaine)
pourquoi? parce que cette méthode teste la longueur de la chaine et pas sa valeur. Il est BEAUCOUP plus rapide de faire
Code:
if (maChaine.Length == 0)
que
Code:
if(maChaine == String.Empty)
performance parlant bien entendu
ca peut paraitre trivial ou superficiel sauf que c'est en cumulant plein de petits best-practices que l'on obtient un code plus propre. Si on garde des mauvaises habitudes, le jour où vous ferez du temps réel ou de l'embarqué, votre code sera inutilisable :/