namespace HelloWorld_Console
{
class BaseClass
{
public int BaseField = 0;
}
class DerivedClass:BaseClass
{
public int DerivedField = 0;
}
class Program
{
static void Main()
{
var bc = new BaseClass();
var dc = new DerivedClass();
BaseClass[] bca = new BaseClass[] { bc, dc };
foreach(var v in bca)
{
Type t = v.GetType(); // 获取类型
WriteLine($"Object type: {t.Name}");
FieldInfo[] fi = t.GetFields(); // 获取字段信息
foreach (var f in fi)
{
WriteLine($" Field: {f.Name}");
}
WriteLine();
}
}
}
}
您还可以使用 typeo f运算符来获取 Type 对象。 只需提供类型的名称作为操作数,它就会返回对Type对象的引用,如下所示:
namespace HelloWorld_Console
{
class BaseClass
{
public int BaseField = 0;
}
class DerivedClass:BaseClass
{
public int DerivedField = 0;
}
class Program
{
static void Main()
{
Type tbc = typeof(DerivedClass); // Get the type.
Console.WriteLine("Result is {0}.", tbc.Name);
Console.WriteLine("It has the following fields:"); // Use the type.
FieldInfo[] fi = tbc.GetFields();
foreach (var f in fi)
Console.WriteLine(" {0}", f.Name);
}
}
}