J'ai toujours initialisé mes chaînes à NULL, en pensant que NULL signifie l'absence d'une valeur et "" ou String.Empty est une valeur valide. J'ai vu plus d'exemples récemment de code où String.Empty est considéré comme la valeur par défaut ou ne représente aucune valeur. Cela me semble étrange, avec les types NULL nouvellement ajoutés dans c #, il semble que nous faisons des pas en arrière avec des chaînes en n'utilisant pas NULL pour représenter 'No Value'.
Qu'est-ce que vous utilisez comme initialiseur par défaut et pourquoi?
Edit: Sur la base des réponses, j'ai approfondi mes pensées
Éviter la gestion des erreurs Si la valeur ne doit pas être nulle, pourquoi a-t-elle été définie
NULL
en premier lieu? Peut-être serait-il préférable d'identifier l'erreur à l'endroit où elle se produit plutôt que de la dissimuler dans le reste de votre base de code?Éviter les vérifications nulles Si vous êtes fatigué de faire des vérifications nulles dans le code, ne serait-il pas préférable d'abstraire les vérifications nulles? Peut-être envelopper (ou étendre!) Les méthodes de chaîne pour les rendre
NULL
sûres? Que se passe-t-il si vous utilisez constammentString.Empty
et qu'un null arrive à fonctionner dans votre système, commencez-vous quand même à ajouter desNULL
vérifications?
Je ne peux m'empêcher de revenir sur l'opinion que c'est de la paresse. N'importe quel DBA vous giflerait de neuf façons stupides si vous utilisiez «» au lieu de null
dans sa base de données. Je pense que les mêmes principes s'appliquent à la programmation et qu'il devrait y avoir quelqu'un pour frapper ceux à l'envers qui utilisent String.Empty
plutôt que NULL
de représenter aucune valeur.
questions connexes