Ci sono differenze significative tra const
e public static readonly
, e si dovrebbe prendere in considerazione che da utilizzare con attenzione:
(da "client" qui, voglio dire "Codice in un diverso il montaggio riferendosi al membro.)
- Se si modifica il valore, ma non ricompilare i clienti, avranno ancora utilizzare il valore originale se si utilizza
const
. Con public static readonly
, vedranno il valore aggiornato. Se si ricompila tutti i clienti modo, questo non è un problema.
- Solo la forma
const
è un momento della compilazione costante, che significa che può essere utilizzato in:
- Attributo argomenti
- istruzioni switch
- dichiarazioni di parametri opzionali
Se si' sono felice di ricompilare tutti i tuoi clienti se cambi mai il valore, i benefici del secondo punto puntato verso l'uso di const
.
Naturalmente, mi chiedo se Pages
davvero deve essere pubblico comunque ... che suona come qualcosa che potrebbe essere internal
, con internal
membri - a quel punto gli aspetti negativi di const
andare via del tutto.
fonte
2011-10-13 09:11:41
Per la visibilità pubblica preferisco 'static readonly' a' const' perché in seguito è possibile modificare il valore in seguito senza dover ricompilare. – mgronber
@mgronber: dipende dal contesto. Nella maggior parte dei contesti in cui mi sono sviluppato, se si modifica un assembly si finisce comunque per ricompilare i client di quell'assembly prima di utilizzare la nuova versione. –