I tipi enumerati sono uno strumento ampiamente diffuso nel .NET Framework, poiché semplificano l'uso di costanti e la loro creazione è alquanto banale. Gli enum sono rappresentati dai nomi, ma internamente sono valorizzati con numeri i quali permettono, grazie all'operatoro bitwise, di essere combinati per rappresentare più nomi.
Ci sono però un paio di funzioni che sono sempre mancante nella BCL e che finalmente sono state introdotte nel .NET Framework 4.0. La prima funzione è il TryParse che permette di effettuare un tentativo di parsing di una stringa ed avere il rispettivo tipo enumerato. Ecco un esempio di utilizzo:
Keys k; if (Enum.TryParse<Keys>("Return,Control", out k)) { // Stampa Return, Control Console.WriteLine(k); }
Da notare come la funzione generica permetta di lavorare in modo tipizzato, supporti i valori separati da virgola e, in linea ai metodi simili della BCL, restituisce l'esito del parsing.
La seconda funzione è HasFlag, il quale diversamente dall'operatore di uguaglianza permette di sapere se un valore contiene un valore combinato. Ecco un esempio:
Keys k = Keys.Control | Keys.Return; if (k.HasFlag(Keys.Return)) Console.WriteLine("Return");
Prima del .NET Framework 4.0 per fare questa operazione era necessario utilizzare l'operatore & e scrivere una condizione piuttosto verbosa.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.