Domanda

È l'ora del refattore di venerdì !!!

Ho un oggetto che utilizzo per generare istruzioni SQL.

oDb.From viene impostato una volta. Quindi i metadati possono aggiungere join nel tempo fino a quando non li combiniamo tutti e li restituiamo.

Quindi la Q è: quante volte devo mantenere la sintassi oDb.From + = prima di sostituirla con sbFrom.Append ()

È # 3, 4 o 15 volte?

O è davvero una questione di contenuti, e in caso affermativo qual è il # magico?

TIA

È stato utile?

Soluzione

Leggi http://www.codinghorror.com/blog/archives/001218. html

La classe StringBuilder è progettata per scenari in cui si stanno costruendo stringhe gigantesche e l'utilizzo della normale concatenazione di stringhe sarebbe davvero troppo lento.

È probabile che per il tipo di lunghezze delle stringhe di cui ti occupi non farà alcuna differenza, basta usare qualunque cosa tu sia a tuo agio.

Altri suggerimenti

Regola empirica totalmente non scientifica: lo farei per qualsiasi cosa su tre elementi - non a causa dell'aumento delle prestazioni, ma piuttosto per (si spera) buona abitudine.

Se devo aggiungere più di due elementi a una stringa, uso quasi sempre StringBuilder (trovo che se aggiungo più di due, inevitabilmente ce ne saranno altri man mano che le persone inizieranno ad aggiungere al mio codice ... quindi StringBuilder è già lì per loro).

Direi qualsiasi cosa ti aspetti di superare i 1-5 MB di lunghezza o qualsiasi cosa che assegni un sacco di stringhe in piccoli pezzi.

Non è del tutto non scientifico - ho letto un articolo una volta in cui in .NET Builder stringa diventa effettivamente più efficiente dopo 5 concatenazioni. Questo è quando in genere uso un String Builder.

Inoltre - penso che la leggibilità entri davvero in gioco riguardo a questo e preferisco anche il formato stringa in alcuni casi rispetto a entrambi.

Uso StringBuilder quando il numero di concatenazione in un algoritmo aumenta su O (n). Se il numero di concatenazione è O (1), la maggior parte delle volte la leggibilità non soffre per nulla (tranne se la stringa è molto grande, il che non è molto frequente).

O quando so che esiste una stringa che diventerà abbastanza grande. (Oltre 100.000 caratteri)

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