[c#] Consulta sobre instancia de Clases.

4 views
Skip to first unread message

Javier Osvaldo Chércoles

unread,
Nov 19, 2015, 2:06:01 PM11/19/15
to Dario Quintana
Hola muchachos, se que FOREACH es para el manejo de elementos de colección, pero en este caso lo que quiero hacer no se si se puede. Tengo una clase instanciada, y quiero recorrer cada campo o variable o propiedad, para que en el caso que corresponda tenga un valor no nulo.

Eso se puede hacer con un foreach o tengo que verlo valor por valor?

Cordialmente.

Javier.

Mauricio Miraglio

unread,
Nov 19, 2015, 2:15:49 PM11/19/15
to Dario Quintana
Hola Javier,

Sí se puede, si te entendí bien :)

http://snipplr.com/view/17637/

using System;

class Program
{
    static void Main(string[] args)
    {
        var person = new Person { Age = 30, Name = "Tony Montana" };
        var type = typeof(Person);
        var properties = type.GetProperties();

        foreach (PropertyInfo property in properties)
        {
            Console.WriteLine("{0} = {1}", property.Name, property.GetValue(person, null));
        }

        Console.Read();
    }
}

public class Person
{
    public int Age { get; set; }
    public string Name { get; set; }
}


Espero te sirva, abrazo.

Pablo Rausch

unread,
Nov 20, 2015, 11:15:51 AM11/20/15
to Dario Quintana
Hola Javier,

Podés hacerlo con un foreach. Tenes que usar Reflection para obtener las propiedades o campos de esa clase.

Te quedaría algo así para las propiedades, por ejemplo:

foreach (var prop in instancia.GetType().GetProperties())
    // Lo que quieras hacer con esa propiedad

Saludos

Pablo

Pedro Wood

unread,
Nov 20, 2015, 11:29:55 AM11/20/15
to Dario Quintana
Hola Javier, no estoy seguro cual es el uso que le querés dar a ese
código por eso no sé si aplica o no, pero fijate si no te conviene
setear los valores esos en el constructor de la clase.

Saludos,

Pedro
Reply all
Reply to author
Forward
0 new messages