예제 #1
0
    public static void Main(string[] args)
    {
        dynamic din = new Dynamic();                                  //precisa ser dynamic para o compilador não reclamar dos membros dinâmicos

        din.Nome      = "Walla";                                      //criando membros dinamicamente
        din.Sobrenome = "C#";
        din.Action    = new Action(() => WriteLine("Action Existe")); //isto não era necessário
        din.Print();                                                  //chama um método existente na classe
        din.Action();                                                 //chama o método que acabou de ser criado
        din.Clear();                                                  //chama um método disponível no dicionário interno, mas que não está definido na classe
        din.Print();                                                  //tá limpo
        din.NaoExiste();                                              //este método não existe
        dynamic exp = new ExpandoObject();

        exp.Action = new Action(() => WriteLine("Expando"));         //só para mostrar que é possível fazer de forma automática, mas precisaria pesquisar
        exp.Action();
    }