轻松学C之运行时类型标识反射优秀PPT.pptx
上传人:天马****23 上传时间:2024-09-10 格式:PPTX 页数:32 大小:1.6MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

轻松学C之运行时类型标识反射优秀PPT.pptx

轻松学C之运行时类型标识反射优秀PPT.pptx

预览

免费试读已结束,剩余 22 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第15章运行时类型标识、反射和特性15.1运行时类型标识15.1.1is运算符测试类型15.1.2as运算符15.1.3typeof运算符15.2反射15.2.1System.Type15.2.2使用反射获取方法的相关信息它的通用形式如下图所示。Type对象,可以确定此类型的特性。1is运算符测试类型其中,error是一个布尔值。所有需要传递给方法的参数都必须在parameters数组中指定。许多支持反射的类都位于System.为了获取特性,通常需要使用以下两种方法中的一种。如果已知想要获得的特性的名称,就可以使用此方法。FieldInfo[]GetFields()ConstructorInfo[]GetConstructrs()【示例15-14】以下程序使用Obsolete特性。5使用反射从程序集获得类型Attribute类的派生类支持。通过这种机制,可以在运行时实例化任意类型的对象,而不必再声明语句中指定类型。ParameterInfo[]GetParameters()Conditional特性ModuleModule15.2.3使用反射调用方法15.2.4使用反射获取Type对象的构造函数15.2.5使用反射从程序集获得类型boolIsGenericType其中,element是一个MemberInfo类型的对象,它描述了要获得哪个项的特性。如果指定类型是抽象类型,就返回true特性定义了与类、构造、方法等相关的附加信息。5使用反射从程序集获得类型只有在通过#define指令定义了特定的符号时才能调用条件方法。仅获取指定类定义的方法,而不获取类所继承的方法所有需要传递给方法的参数都必须在parameters数组中指定。ConstructorInfo[]GetConstructrs()在特性类中,可以定义支持该特性的成员。通过这种机制,可以在运行时实例化任意类型的对象,而不必再声明语句中指定类型。Invoke()方法返回被调用方法的返回值。对于在在构造的类型,该列表就可能同时包含类型实参和类型形参第15章运行时类型标识、反射和特性但是在连接特性时使用全名比较安全,可以避免可能产生的多义性。15.3.1创建特性15.3.2连接特性15.3.3获取对象的特性15.3.43个内置特性15.4小结谢谢