我有一个这样的类,它具有很多属性:
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/