Ho sempre inizializzato le mie stringhe su NULL, pensando che NULL significhi l'assenza di un valore e "" o String.Empty sia un valore valido. Ultimamente ho visto più esempi di codice in cui String.Empty è considerato il valore predefinito o non rappresenta alcun valore. Questo mi sembra strano, con i nuovi tipi di nullable aggiunti in c # sembra che stiamo facendo passi indietro con le stringhe non usando NULL per rappresentare 'No Value'.
Cosa usi come inizializzatore predefinito e perché?
Modifica: in base alle risposte, ulteriori miei ulteriori pensieri
Evitare la gestione degli errori Se il valore non deve essere nullo, perché è stato impostato
NULL
in primo luogo? Forse sarebbe meglio identificare l'errore nel luogo in cui si verifica piuttosto che coprirlo per tutto il resto della tua base di codice?Evitare controlli null Se sei stanco di fare controlli null nel codice, non sarebbe meglio astrarre i controlli null? Forse avvolgi (o estendi!) I metodi stringa per renderli
NULL
sicuri? Cosa succede se si utilizza costantementeString.Empty
e accade che un null funzioni correttamente nel sistema, si iniziaNULL
comunque ad aggiungere controlli?
Non posso fare a meno di tornare all'opinione che è pigrizia. Qualsiasi DBA ti darebbe uno schiaffo in nove modi se facessi "" invece che null
nel suo database. Penso che gli stessi principi si applichino alla programmazione e dovrebbe esserci qualcuno che colpisca coloro che si muovono al di String.Empty
sopra della testa che usano piuttosto che NULL
rappresentare alcun valore.
domande correlate