我有一个这样的类,它具有很多属性:

class ClassName
{
     string Name {get; set;}
     int Age {get; set;}
     DateTime BirthDate {get; set;}
}


我想使用值的ToString()方法和属性的名称来打印属性的名称和值,如下所示:

ClassName cn = new ClassName() {Name = "Mark", Age = 428, BirthData = DateTime.Now}
cn.MethodToPrint();

// Output
// Name = Mark, Age = 428, BirthDate = 12/30/2010 09:20:23 PM


反思是完全可以的,实际上我认为这可能是必需的。如果它可以通过某种继承以某种方式在任何类上工作,我也会很整洁。如果那很重要,我正在使用4.0。

最佳答案

就像您提到的,您可以通过反射来实现。确保您是using System.Reflection

public void Print()
{
    foreach (PropertyInfo prop in this.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
    {
        object value = prop.GetValue(this, new object[] { });
        Console.WriteLine("{0} = {1}", prop.Name, value);
    }
}

关于c# - C#打印属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4568282/

10-13 09:39