什么是反射?
反射是一种行为,发生在程序运行时,当你查看程序集数据或者元数据的时候
反射机制:是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性,是一种动态获取的信息以及动态调用对象的方法的功能。
反射有什么用?
可以通过反射获取类中的方法、字段、属性、子类
什么时候使用反射?
简单的说反射是为了动态地运行时加载,而静态代码是在编译时就确定好了。也就是说当你的程序需要在运行时再做一些晚绑定,动态加载或检查对象等操作时,你就需要用到反射。
反射(Reflection)有下列用途:
- 它允许在运行时查看属性(attribute)信息。
- 它允许审查集合中的各种类型,以及实例化这些类型。
- 它允许延迟绑定的方法和属性(property)。
- 它允许在运行时创建新类型,然后使用这些类型执行一些任务
反射的优点和缺点?
优点:提高程序的灵活性与可扩展性,降低代码的耦合性
缺点:
1. 过多使用,会造成逻辑模糊,因为反射已经绕过的源码,看不到逻辑实现,会造成后期维护上的困扰。
2. 性能的问题,主要应用在对灵活性和拓展性要求很高的系统框架上,普通程序不建议使用。
反射的使用
object类型数组中的元素,对应了方法中的参数(顺序不能调换)