我最近开始在一家新公司工作,我们使用反射构建了一个.net Web应用程序。我刚刚离开学校一年,并没有使用这个概念。在研究了代码之后......看起来有一个类型为object的后端接口,它有大约20个继承自它的类。许多通用的获取和设置
从表面上看,它看起来像是我的标准继承。我想我的问题是,是什么让这种反思?是因为界面没有强类型?
由于
答案 0 :(得分:9)
请先阅读维基百科上的Reflection。然后查看MSDN上的Reflection Namespace。
我相信我知道你遇到的一般模式。由于用户可以在运行时指定类型和成员名称,因此需要进行反射。然后程序必须使用反射将提供的名称映射到实际的类型成员。
一般来说,如果您的程序在运行时检查对象类型,那么您正在使用反射。
BTW,强和弱是语言类型系统的属性,但不任何应用程序或结构(例如界面等) )用这种语言写的。即。 “许多人认为C#是强类型语言”。
答案 1 :(得分:1)
答案 2 :(得分:0)
“反射:能够在运行时发现类型的组合(例如,类,接口,结构,枚举或委托)。”
我相信你的同事指的是他们如何实例化你的对象。我确定你的对象是使用标准继承构建的。
答案 3 :(得分:0)
a)应用程序无法使用反射进行购买。反思很可能是应用程序的一部分。就像你提到的一个父母和20个孩子课的继承一样。
b)反射用于在运行时分析对象。暗示假设你有一个对象参考类型对象,也许这个对象类型可能会有所不同,你想在运行时看到属性然后使用反射。另一种情况是你必须调用一个方法,但你真的不知道哪种方法及其一般方法。
c)因为它是一个.net应用程序,在vb.net的情况下,一行像objectinstance。 GetType .somemethod将指向反射。检查出来