22 de set. de 2009

Como carregar um enum

image

Dicas rápidas, que usamos várias vezes em um projetos, más que esquecemos corriqueiramente...
Para carregar um enum, seja por string ou inteiro:

// -> Carregando um enun apartir de uma string com seu nome
DayOfWeek dia = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), "Friday");

// -> Carregando um enun apartir de um inteiro com seu valor
DayOfWeek dia = (DayOfWeek)Enum.ToObject(typeof(DayOfWeek), 5);

Basicamente uma conversão int to enum ou string to enum.

Pesando assim, podemos bolar dois extension metods:

using System;

namespace ExtensionMethods
{
    public static class ExtensionEnun
    {
        /// <summary>
        /// Converte uma String para um Enun.
        /// </summary>
        /// <typeparam name="T">Tipo do Enun.</typeparam>
        /// <param name="value">string para ser convertida.</param>
        /// <returns>Enun.</returns>
        public static T ToEnun<T>(this string value)
        {
            return (T)Enum.Parse(typeof(T), value);
        }

        /// <summary>
        /// Converte um Número para um Enun.
        /// </summary>
        /// <typeparam name="T">Tipo do Enun.</typeparam>
        /// <param name="value">Inteiro.</param>
        /// <returns>Enun.</returns>
        public static T ToEnun<T>(this int value)
        {
            return (T)Enum.ToObject(typeof(T), value);
        }
    }
}

Espero que seja útil :)

0 comentários: