Type
Type类型是反射的最重要的一个类:
一、获取Type类型
object类型包含一个叫做GetType方法,它返回实例的type对象的引用。因为所有的类最终是继承Object,所以我们可以在任何对象上使用GetType方法
①使用GetType方法
Type t=person.GetType();
②使用typeof(class)
Type t=typeof(Person);
二、Type类,部分重要成员:
①Name:返回类型的名字
②Namespace:返回包含类型声明的命名空间
③Assembly :返回声明类型的程序集,如果类型是泛型的,返回定义这个类型的程序集
④GetFields:返回类型字段列表,包含父类的
⑤GetProperties:返回类型属性列表,包含父类的
⑥GetMethods:返回类型的方法列表,包含父类的
⑦GetEvents:返回类型的事件列表,包含父类的
⑧GetMembers():返回类型的成员列表,包含父类的
三、测试Type
class BaseClass { public int BaseFiled = 0; } class DerivedClass : BaseClass { public int DerivedField = 0; } static void Main(string[] args) { var bc = new BaseClass(); var dc = new DerivedClass(); BaseClass[] bca = new BaseClass[] { bc, dc }; foreach (var v in bca) { Type t = v.GetType(); Console.WriteLine("Object Type:{0}",t.Name); FieldInfo[] fi = t.GetFields(); foreach (var f in fi) { Console.WriteLine("field:{0}",f.Name); } } Console.ReadKey(); } //输出是: Object Type:BaseClass field:BaseFiled Object Type:DerivedClass field:DerivedField field:BaseFiled