C # - sono tutte costanti di Enum?
Domanda
Tutte le enumerazioni di enum sono costanti? Vengono convertiti nel loro valore in fase di compilazione o in fase di esecuzione?
Soluzione
Sono costanti. Sì, tempo di compilazione.
Riferimento: http://msdn.microsoft.com/en-us/library/sbbt4032.aspx
Dall'introduzione:
La parola chiave enum viene utilizzata per dichiarare un'enumerazione, un tipo distinto che è costituito da un insieme di costanti nominate chiamato l'elenco degli enumeratori.
In " Robust Programming " ;:
Proprio come con qualsiasi costante, tutto riferimenti ai singoli valori di un enum viene convertito in numerico valori letterali al momento della compilazione . Questo può creare potenziali problemi di versioning come descritto in Costanti (Programmazione C # Guida).
Altri suggerimenti
I valori di enum sono costanti, non possono cambiare.
I loro valori sono fissi al momento della compilazione.