许多.Net访谈问题清单(包括好问题清单)都包含一个问题:"什么是反思?".我最近被要求在5个问题的背景下回答这个问题,技术测试是在15分钟内在一张自助餐厅交给我的空白纸上完成的.我的回答是"反射允许您在运行时发现任何对象的方法,属性和字段".回想起来,我的回答解释了如何使用反射,但它没有解释反射是什么.在我看来,我的答案是足以传达我明白了什么是反思的,但并没有走那么远,解释什么反思的.
所以,请在.Net的上下文中,用您自己的简洁词语来定义反射是什么.回答不要花费超过三分钟.不要参考.Net文档,我们都看过了.
Bri*_*sen 43
反射是以动态方式查询类型系统并与之交互的能力.
反射是CLR对代码级对象的认识,例如通过API公开的类名,方法等,即System.Reflection,它允许开发人员在其代码中利用运行时对这些信息的认知.
规则违规:为了准确起见,我已经从原始表格中编辑了这个答案.
反思就像海军凝视代码.
在编译.Net语言期间,编译器将有关程序的信息放入程序文件中.程序本身或其他程序可以使用此信息来查找程序包含哪些类,它们的方法,属性,字段和事件.即使其他程序在运行之前对它们一无所知,也可以通过反射使用类及其方法,属性等.这允许不同的程序松散耦合并使各种令人兴奋的编程成为可能.Reflection也可用于在运行程序或程序文件中构建其他类.