2011-11-27 5 views
13

Eventuali duplicati:
What is the difference between const and readonly?const vs statico di sola lettura

Quindi, da quello che ho letto, in C#, const e static readonly saranno entrambi fare un valore inalterabile durante l'esecuzione di un programma .

Tuttavia, const deve essere utilizzato con quantità che non cambieranno mai (ad esempio pi, raggio di terra, lettiere per gallone ecc.).

D'altra parte, static readonly deve essere utilizzato con valori che al momento sono costanti, ma potrebbero/cambieranno in futuro (ad esempio versione del software, un moltiplicatore in un algoritmo, ecc.).

Ho capito bene?

+0

In realtà questo è piuttosto il duplicato: http://stackoverflow.com/questions/755685/c-static-readonly-vs-const l'ho visto prima di pubblicare, ma va in profondità prima che si spiega con la semplice inglese – s5s

+0

Questo è un buon collegamento, specialmente la seconda risposta rispetto alle differenze di compilazione tra const e static readonly. – Dunes

risposta

29

Non so il tuo secondo elemento (probabilmente utilizzerei una costante per una versione software o un algoritmo ... costante) ma c'è una differenza fondamentale tra i due: const può contenere solo tipi di base come string, bool o tipi numerici. static readonly può contenere qualsiasi oggetto. Quindi, ad esempio, utilizzo spesso lo static readonly per memorizzare risorse come gli oggetti Bitmap. Quelli non possono essere const.

+1

Oh capisco. Non lo sapevo – s5s