Palavras-chave: C#, CSharp, enum, declaração, validação, framework
Uma das boas práticas de programação em C# é o uso do enum. Ele serve para substituirmos constantes nomeadas que são relacionadas mas ficam “perdidas” no código.
//Declaração do enum
public enum ImageAlign
{
    None,
    Left,
    Right
}
public void MeuMetodo(ImageAlign imageAlign)
{
}
Apenas temos que ter o cuidado de validar o tipo passado como parâmetro, pois o “cliente” pode usar nosso método assim:
MeuMetodo((ImageAlign)1)
Para validar o valor do enum passado como parâmetro para um método use:
public void MeuMetodo(ImageAlign imageAlign)
{
    if(!Enum.IsDefined(typeof(ImageAlign), imageAlign))
        throw new ArgumentException();
    //....
}
											 
								




Roberto,
É interessante ver o processo de verificação do tipo do objeto.
Mas discordo que isso tenha que ser feito, ter o cuidado de validar
o parâmetro passado.
Se tivermos que verificar todo tipo de entrada de dados porque o cara
(cliente) pode fazer um “cast” estamos perdido.
O cara que faz o “cast” é o responsável em garantir que ele está certo,
pois o “cast” é como se o programador estivesse falando:
— Ei compilador esquece que tipo é esse, manda esta variável com
este tipo aqui “(ImageAlign)1”.
No mais só. Belo trabalho vocês estão fazendo aqui.