Il motivo per cui utilizzo sempre .Format() è per la risoluzione e di conseguenza la riduzione dei bug e i vantaggi di manutenzione. Ovviamente questo non ha senso se sei relativamente nuovo al codice dato che il secondo esempio è inizialmente più intuitivo. Il primo appare inutilmente complesso.
Tuttavia, se si sceglie il secondo motivo, si iniziano ad avere problemi quando si hanno molte variabili. È qui che è più facile apprezzare i benefici del primo schema.
es
Console.Writeline(var1 + " " + var2 + "-" + var3 +
" some sort of additional text" + var4);
Nota l'errore: ho bisogno di un altro spazio dopo "testo", ma che non è facile vedere in questo esempio.
Tuttavia se lo faccio il contrario:
Console.Writeline("{0} {1}-{2} some sort of additional text{3}",
var1, var2, var3, var4)
E 'chiaro per vedere cosa sta succedendo. È più facile apprezzare il risultato finale quando dividi la formattazione dalle variabili che verranno utilizzate.
Se vogliamo pensare ancora più a lungo termine, allora aiuta con la globalizzazione/personalizzazione. Se mettiamo le stringhe di formato in configurazione, possiamo quindi modificare la formattazione o l'ordine delle variabili senza toccare il codice.
Si consiglia di guardare il codice disassemblato per vedere se vi sia una significativa differenza di prestazioni. Personalmente preferisco il primo. – fardjad
Sono continuamente sconvolto da chi trova gli specificatori di formato * più leggibili * rispetto alle semplici concatenazioni. Non dirmi che non hai mai digitato male quelle parole e hai dovuto tornare indietro e correggere un bug a causa di ciò. Inoltre, vedere [questo post di blog] (http://geekswithblogs.net/BlackRabbitCoder/archive/2010/05/10/c-string-compares-and-concatenations.aspx). Come risulta, la concatenazione semplice ('+') è la migliore per concatenare (set abbastanza piccoli), 'StringBuilder' è la cosa migliore quando è necessario creare un ciclo, e' Format' è il migliore per la formattazione. Il vantaggio in termini di prestazioni dell'uso di 'Format' su' + 'è ** trascurabile al meglio **. –