sexta-feira, 7 de dezembro de 2012

Extension com c# .Net

Extensions é um recurso muito bom para se usar em orientação a objetos, você estende a uma classe existente adicionando novos métodos com sua regra. Assim você pode por exemplo criar um método que converte String para Int32? e estender para suas strings, ou seja qualquer coisa que retorne uma string terá esse método implementando.

Lisgatem 1: Alguns exemplos de estensao para classe string
    public  static class ExtensionsString
    {
public static short? ConvertToInt16(this string value)
            {
                if (string.IsNullOrEmpty(value))
                    return null;

                return Convert.ToInt16(value);
            }

            public static Int32? ConvertToInt32(this string value)
            {
                if (string.IsNullOrEmpty(value))
                    return null;

                return Convert.ToInt32(value);
            }

            public static long? ConvertToInt64(this string value)
            {
                if (string.IsNullOrEmpty(value))
                    return null;

                return Convert.ToInt64(value);
            }
    }

Para usar nossa estensão apenas precisamos digitar a chamada.

 Listagem 2: Exemplo de uma chamada a uma estensão criada na listagem 1

String Nota = "8";
Int32? ValorInteiroNota = Nota.ConvertToInt32()

Podemos ousar mais e cria Métodos mais rebuscados, que popula uma DropDownList ou outro método mais interessante.

 Listagem 3: Métodos mais rebuscados

 public static void PopularDDl(this DropDownList ddl, object Lista, string DataTextField, String DataValueField)
            {
                ddl.Items.Clear();
                ddl.DataTextField = DataTextField;
                ddl.DataValueField = DataValueField;
                ddl.DataSource = Lista;
                ddl.DataBind();
                ddl.Items.Insert(0, new ListItem("Selecione...", ""));
                ddl.SelectedValue.Equals(0);
               

            }

Nenhum comentário:

Postar um comentário