Perché utilizzare string.Empty over "" durante l'assegnazione a un oggetto stringa

13

Ho eseguito StyleCop sul mio codice e uno dei consigli SA1122 è quello di utilizzare string.Empty piuttosto che "" quando si assegna una stringa vuota a un valore.

La mia domanda è: perché questa è considerata la migliore pratica. Oppure, è considerata una buona pratica? Presumo che non ci sia alcuna differenza di compilazione tra le due affermazioni quindi posso solo pensare che sia una cosa di leggibilità?

SO domanda e risposta

Jon Skeet rispondi alla domanda

    
posta dreza 19.03.2012 - 21:19
fonte

4 risposte

11

Un motivo valido è che rende chiaro che non si tratta di un errore di battitura o di un segnaposto, che veramente intendeva utilizzare la stringa vuota qui.

Non so se è considerato "best practice".

    
risposta data 19.03.2012 - 21:23
fonte
7

Immagino che ci siano due ragioni, una per la leggibilità e due per un minore incremento delle prestazioni.

La leggibilità è facile: è molto più rapido individuare string.Empty rispetto a "" . Anche la ricerca di string.Empty sarà in genere più semplice e forse più accurata della ricerca del letterale. Inoltre, chiarisce l'intento: non hai fatto solo errori di battitura o hai dimenticato di finire qualcosa, volevi davvero una stringa vuota.

Il motivo del rendimento è dovuto a interno . Vedete, il runtime mantiene una tabella di stringhe usate in precedenza in modo che possa eseguire rapidamente confronti tra stringhe senza eseguire effettivamente un controllo carattere per carattere. string.Empty è già un riferimento internato a "" dove-poichè digitare il letterale potrebbe non fornirti la versione internata, causando quindi un leggero calo di prestazioni.

    
risposta data 19.03.2012 - 21:27
fonte
4

string.Empty vince in un caso veramente angusto, che può portare a qualche bug magico e davvero difficile da eseguire il debug:

Se esiste uno spazio di larghezza zero in "" .

    
risposta data 07.03.2018 - 10:31
fonte
0

Secondo alcuni documenti che ho trovato, ha a che fare con ciò che viene emesso dal compilatore.

Una ricerca rapida rivela: link

Perché è archiviato in "Regole di leggibilità" con la descrizione che è sconcertante.

    
risposta data 19.03.2012 - 21:26
fonte

Leggi altre domande sui tag