Domanda

Duplica da: Output stringa: formato o concat in C #?

Soprattutto nel mondo C # usare String.Format per tutto è davvero comune, normalmente come sviluppatore VB.NET a meno che non debba * non String.Format,

Preferisco la normale concatenazione di stringhe, come ad esempio:

V1 = V2 & "test-x" & V3 & "-;"

per me è meglio di questo:

V1 = String.Format("{0} test-x {1} -;", V2, V3)

Mi sto perdendo qualcosa? O è solo una preferenza personale?

Ragioni per usare String.Format (From The Answers) ( Proverò a tenerlo aggiornato )

  • La localizzazione è molto più semplice se si utilizza il formato stringa
  • Ovviamente è più facile cambiare il formato dell'input
  • È più leggibile ( tuttavia è personale )
  • Migliori prestazioni

** A volte ho bisogno di cambiare lo stile o sostituire roba dinamicamente, quindi uso String.Format *

È stato utile?

Soluzione

Se hai mai intenzione di localizzare la tua applicazione (ed è spesso difficile escluderla all'inizio), allora String.Format è da preferire, per due motivi:

  1. Hai solo una stringa letterale da tradurre
  2. Puoi modificare l'ordine dei valori, il che potrebbe avere più senso in un'altra lingua.

Altri suggerimenti

Ognuno ha pubblicato su quanto sia leggibile string.format (che accetto, e ha benefici null ref e internazionalizzazione sì) ma nessuno ha menzionato che è notevolmente più lento della semplice concatenazione di stringhe (piccolo numero di elementi) o usando StringBuilder (gran numero di concat).

Se le prestazioni sono importanti o stai eseguendo un gran numero di operazioni (quindi le prestazioni presto saranno importanti), dovresti evitare il formato.

Modifica: riferimenti come richiesto;)

http://msmvps.com/blogs /jon_skeet/archive/2008/10/06/formatting-strings.aspx

http: // blog. briandicroce.com/2008/02/04/stringbuilder-vs-string-performance-in-net/

Bell'articolo qui di Karl Seguin: codice migliore - usa string.format che spiega alcuni dei vantaggi.

Il primo metodo è molto difficile da leggere e ancora più noioso da digitare. Inoltre, una volta che inizi a fare molte di queste concatenazioni, ci sono considerazioni sulle prestazioni a cui pensare.

Se stai effettivamente formattando i valori ({0: d} ecc.), String.Format è molto meglio da leggere rispetto alla concatenazione di stringhe.

Per me dipende dal contenuto. La concatenazione di stringhe crea oggetti stringa aggiuntivi (perché le stringhe sono immutabili in .NET ), sebbene principalmente sia un problema di leggibilità.

A volte diventa complicato quando vuoi inserire caratteri di nuova riga in una stringa, nel qual caso tendo a usare qualcosa del tipo:

StringBuilder.AppendLine(string.Format("Some text {0}.", "here"));

Personalmente trovo che String.Format sia più facile da leggere, la stringa è presentata come un testo consecutivo. Dipende però da quanti parametri ci sono, se devi cercare il parametro giusto per capirlo, allora ...

Credo che sia più una questione di preferenza. Tuttavia, una volta che ho iniziato a usarlo regolarmente, la maggior parte della mia squadra ha seguito l'esempio. Quando ne abbiamo discusso è stato concordato che è più semplice da capire e leggere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top