none
Método que aceita qualquer classe RRS feed

  • Pergunta

  • Bom dia, alguém poderia me ajudar se haver a possibilidade de criar um método que que recebe qualquer objeto/classe e varre ele através do foreach para obter o nome da propriedade e seu respectivo valor.

    Exemplo:

    public void lerObjeto(Tipo objeto)

    {

    foreeach(var item in objeto)

    {

    informa objeto.propriedade;

    informa objeto.valor;

    }

    }

    Desde já agradeço.

    terça-feira, 4 de março de 2014 14:36

Respostas

  • Bom dia Miguel,

    Você pode criar um método responsável por exibir estas informações do objeto, aqui vai um exemplo:

    using System;
    
    namespace ConsoleApplication12
    {
        public class ObjectsManagement<T>
        {
            public void ObjectInfo(T @object)
            {
                foreach (var property in @object.GetType().GetProperties())
                {
                    Console.WriteLine("Propriedade: {0} \t\t Valor:{1}", property.Name, property.GetValue(@object, null));
                }
            }
        }
    
        public class Cliente
        {
            public int Id { get; set; }
            public string Nome { get; set; }
        }
    
        public class Program
        {
            static void Main(string[] args)
            {
                Cliente c = new Cliente()
                {
                    Id = 1,
                    Nome = "Vitor"
                };
    
                new ObjectsManagement<Cliente>().ObjectInfo(c);
    
                Console.ReadLine();
            }
        }
    }




    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)

    • Marcado como Resposta Miguel Pacifico quinta-feira, 24 de abril de 2014 13:22
    quinta-feira, 6 de março de 2014 14:05

Todas as Respostas

  • Olá,

    No .Net Framework todos os tipos derivam de object. Então o tipo certo para colocar no parâmetro é object.


    Herbert Lausmann

    Meu BlogMeu perfil no Facebook

    terça-feira, 4 de março de 2014 15:40
  • Bom dia Miguel,

    Você pode criar um método responsável por exibir estas informações do objeto, aqui vai um exemplo:

    using System;
    
    namespace ConsoleApplication12
    {
        public class ObjectsManagement<T>
        {
            public void ObjectInfo(T @object)
            {
                foreach (var property in @object.GetType().GetProperties())
                {
                    Console.WriteLine("Propriedade: {0} \t\t Valor:{1}", property.Name, property.GetValue(@object, null));
                }
            }
        }
    
        public class Cliente
        {
            public int Id { get; set; }
            public string Nome { get; set; }
        }
    
        public class Program
        {
            static void Main(string[] args)
            {
                Cliente c = new Cliente()
                {
                    Id = 1,
                    Nome = "Vitor"
                };
    
                new ObjectsManagement<Cliente>().ObjectInfo(c);
    
                Console.ReadLine();
            }
        }
    }




    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)

    • Marcado como Resposta Miguel Pacifico quinta-feira, 24 de abril de 2014 13:22
    quinta-feira, 6 de março de 2014 14:05