第14章动态类型和特性 ■14.1动态类型 引用类型变量或者指针可以指示一个对象,也可以指示该类的派 生类对象,所以有时必须要在运行时确定对象的类型,这就是所 谓的动态类型确定,C#中可以使用 typeof运算符、 Get Type方法 和is运算符等工具动态地获取类型、方法、属性等信息
第14章 动态类型和特性 引用类型变量或者指针可以指示一个对象,也可以指示该类的派 生类对象,所以有时必须要在运行时确定对象的类型,这就是所 谓的动态类型确定,C#中可以使用typeof运算符、GetType方法 和is运算符等工具动态地获取类型、方法、属性等信息。 ◼ 14.1 动态类型
14.1.1 typeof运算符和 GetType方法 14.1.1.1 typeof运算符 对于任何一个类型,运用 typed运算符,能够获得一个类型的详 细信息, typeof表达式有两种基本格式: typeof(类型) typeof void) 14.1.12 Get Type方法 使用 Get Type方法获得类型信息,基本的调用格式是: 对象 Get Type0
14.1.1 typeof运算符和GetType方法 对于任何一个类型,运用typeof运算符,能够获得一个类型的详 细信息,typeof表达式有两种基本格式: typeof (类型) typeof ( void ) ◼ 14.1.1 .1 typeof运算符 ◼ 14.1.1 .2 GetType方法 使用GetType方法获得类型信息,基本的调用格式是: 对象.GetType ()
14.1.2 MemberInfo类 MemberInfo类的全称是 System Reflection MemberInfo类,用于获取类的 成员(构造函数、事件、字段、方法和属性等)信息的抽象基类。它继承 Object,并且派生出许多重要的类,层次结构为 System Object System Reflection MemberInfo System Reflection. Eventlnfo System Reflection FieldInfo System Reflection. Method Base System Reflection Property Info System Type 从 Method Base类中派生两个很重要的类: System Reflection. ConstructorInfo System Reflection MethodInfo 口公共属性 口公共方法
14.1.2 MemberInfo类 MemberInfo类的全称是System.Reflection.MemberInfo类,用于获取类的 成员(构造函数、事件、字段、方法和属性等)信息的抽象基类。它继承 Object,并且派生出许多重要的类,层次结构为: System.Object System.Reflection.MemberInfo System.Reflection.EventInfo System.Reflection.FieldInfo System.Reflection.MethodBase System.Reflection.PropertyInfo System.Type 从MethodBase类中派生两个很重要的类: System.Reflection.ConstructorInfo System.Reflection.MethodInfo ❑ 公共属性 ❑ 公共方法
14.1.3 System.Type类 通过 typeof运算符或者从 Get Type方法获得的是 System Type类的 对象。Type类处于 System Reflection命名空间,Type类继承了 MemberInfo类和 Reflect接口。使用Type类应该先引入 System Reflection命名空间。使用Type的成员可以获取关于类型 声明、构造函数、方法、字段、属性和事件,以及该类所属的模 块和程序集。 Type类有很多的成员,在此仅介绍其中若干常用的成员。 口公共属性 口公共方法
14.1.3 System.Type类 通过typeof运算符或者从GetType方法获得的是System.Type类的 对象。Type类处于System.Reflection命名空间,Type类继承了 MemberInfo 类 和 IReflect 接 口 。 使 用 Type 类应该先引入 System.Reflection命名空间。使用Type的成员可以获取关于类型 声明、构造函数、方法、字段、属性和事件,以及该类所属的模 块和程序集。 Type类有很多的成员,在此仅介绍其中若干常用的成员。 ❑ 公共属性 ❑ 公共方法
14.1.4is运算符 is运算符用于检查对象运行时的类型是否与给定类型兼容。使用is运 算符的格式如下: e is t 其中e是表达式,T是类型,运算的结果是boo值。表示e的类型是否 可以通过引用转换、装箱或者拆箱转换成为T。 请注意,在讨论运算符is时,我们所说的转换,仅仅是指引用转换、 装箱和拆箱所引起的类型转换,其它的转换,如,用户自定义的转换 不能使用is运算符
14.1.4 is运算符 is运算符用于检查对象运行时的类型是否与给定类型兼容。使用is运 算符的格式如下: e is T 其中e是表达式,T是类型,运算的结果是bool值。表示e的类型是否 可以通过引用转换、装箱或者拆箱转换成为T。 请注意,在讨论运算符is时,我们所说的转换,仅仅是指引用转换、 装箱和拆箱所引起的类型转换,其它的转换,如,用户自定义的转换 不能使用is运算符