using System;
using System.Reflection;
namespace Chapter24ReflectionAndAttribute_243_GetTypeObject
{
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("Hello World!");
var bc = new BaseClass();
var dc = new DerivedClass();
BaseClass[] bca = new BaseClass[] { bc,dc};
foreach (var v in bca)
{
Type t = v.GetType();
int hs = v.GetHashCode();//得到哈希值
Console.WriteLine("Object type(Name)is:{0}",t.Name);
Console.WriteLine("HashCode is:{0}", hs.ToString());
//Console.WriteLine("Object Assembly is:{0}", t.Assembly);
// Console.WriteLine("Object Assembly is:{0}", t.);
FieldInfo[] fi = t.GetFields();
foreach(var f in fi)
{
Console.WriteLine("Field is:{0}", f.Name);
//Console.WriteLine();
}
Console.WriteLine();
FieldInfo finfo = t.GetField("BaseField");
Console.WriteLine("the info of BaseField is:{0}",finfo.ToString());
}
}
}
class BaseClass
{
public int BaseField = 0;
}
class DerivedClass :BaseClass
{
public int DerivedField = 0;
}
}