在一个类中,通用都有很多的变量和属性,如果我们在显示的时候,需要逐一进行展示,每一行都要写输出代码,就会比较麻烦。本文介绍了一种通过反射技术实现的属性输出方法,能够非常快速方便地输出类中的所有属性名称和值。以下是全部代码:
public calss Values
{
public int ID = 1;
public double Value1 = 1.5;
public double Value2 = 2.6;
/// <summary>
/// 核心代码:显示所有字段内容。
/// </summary>
public void Show()
{
foreach (FieldInfo fi in GetType().GetFields())
Console.WriteLine($"{fi.FieldType} {fi.Name}: {fi.GetValue(this)}");
}
}
运行代码为:new Values().Show();
,显示内容如下:
System.Int32 ID: 1
System.Double Value1: 1.5
System.Double Value2: 2.6
代码中的显示函数 Show()
中,包括以下几个内容:
- GetType()
用于返回当前对象的类型 Type。 - GetFields()
返回当前类型的所有字段 - FieldInfo
字段的属性,包括字段的名称,数据类型,作用域等。 - fi.GetValue(this)
fi 是 FieldInfo的对象,比如代表的就是ID字段,那么当调用这个函数的时候,就会从this这个对象中的ID字段获得其值。