Le nuove API per gli enumeratori nel .NET Framework 4.0

di Cristian Civera, in .NET Framework,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi