aspnet-c#

Convertire una stringa in un enum con C#

1 Flares 1 Flares ×
FacebookTwitterGoogle+tumblrLinkedIn

Per convertire una stringa in un enum con C# bisogna per prima cosa creare un metodo generico che esegua tale conversione:

public static T StringToEnum(string name)
{
  return (T)Enum.Parse(typeof(T), name);
}

Il codice è abbastanza semplice, bisogna solo fare il parse passando il tipo del Enum e la stringa. Dal momento che il metodo Parse ci ritorna indietro un oggetto, dobbiamo fare il cast al tipo del Enum. Semplice no?

Ecco un sepmlice esempio:

public enum GiorniSettimana
{
Lunedi,
Martedi,
Mercoledi,
Giovedi,
Venerdi,
Sabato,
Domenica
}

public enum TipoGiornata
{
Lavorativa,
Festa,
Ferie
}

//gg ha il seguente valore  GiorniSettimana.Mercoledi
GiorniSettimana gg = StringToEnum(“Mercoledi ”);

//tt ha il seguente valore  TipoGiornata.Ferie
TipoGiornata tt = StringToEnum(“Ferie”);

Che succede però se i passiamo come argomento un valore che non può essere convertito, come per esempio:

GiorniSettimana gg = StringToEnum(“Pippo”);

In questo caso avremo un eccezione del tipo ArgumentException e per ovviare questo problema possiamo fare una verifica prima di convertire:

if(Enum.IsDefined(typeof(GiorniSettimana), ”Pippo”))
StringToEnum(“Pippo”);

Spero che questi esempi di codice possano tornarvi utili in futuro per lo sviluppo delle vostre applicazioni.

Perché utilizzare l’enumeration?

Un tipo di enumerazione (anche denominato enumerazione o enum) offre un modo efficiente per definire un insieme di costanti integrali denominate che possono essere assegnate a una variabile.
Si presupponga ad esempio di dover definire una variabile il cui valore rappresenterà un giorno della settimana.

Ci sono solo sette valori significativi che la variabile potrà mai archiviare.
Per definire tali valori, è possibile utilizzare un tipo di enumerazione, dichiarato tramite la parola chiave enum.

FacebookTwitterGoogle+tumblrLinkedIn

Lascia un Commento

L'indirizzo email non verrà pubblicato.

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

1 Flares Twitter 0 Facebook 0 Google+ 0 Pin It Share 0 LinkedIn 1 1 Flares ×