Molte lingue supportano un tipo di enumerazione supportato da un intero ma con nomi con scope amichevoli nella lingua corretta.
C #, come molti altri, chiamano il loro enum
. Ogni volta che lo usi, assicurati di lavorare solo con il valore numerico al limite del tuo codice, se non lo fai, e di stare attento a non cambiare l'ordine o il valore degli enumerandi se hai dati persistenti rappresentati con l'enum. / p>
Anche se il tuo valore è vero: y o sì-no: y, considera comunque una piccola enumerazione per chiarezza nelle firme delle funzioni, in particolare se non è chiaro quali significati siano mappati su vero e falso. Lo stesso vale per assegnare significato ai valori numerici.
A nessuno piace vedere f(true, 0, 0, null, false, false, 3)
, nemmeno con la funzionalità IDE che rivela la firma al passaggio del mouse o la pressione del pulsante.
Per quanto riguarda le prestazioni, non vedrai alcuna differenza tra un char e un intero. Le stringhe incorreranno in qualsiasi (non) penalizzazione dei riferimenti e qualunque sia il costo per produrre una stringa letterale conosciuta.
Probabilmente sarà trascurabile, ottimizzerà invece la leggibilità e l'intolleranza ai bug.
Se la tua domanda riguarda effettivamente i database, considera una chiave esterna in una tabella separata, in questo modo puoi assicurarti che solo i valori validi finiscano nella colonna ed è ragionevolmente estensibile.
MSDN su enum