首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是反射?

什么是反射?
EN

Stack Overflow用户
提问于 2008-10-05 02:26:06
回答 6查看 1.1K关注 0票数 6

我对ASP.NET非常陌生,我来自VB6 / ASP (经典)/ SQL Server2000背景。我读了很多关于Visual Studio2008的文章(我已经安装了它,并在四处摸索)。我读过关于“反射”的文章,并希望有人能尽可能地向我上面写过的技术的老开发者解释一下,反射到底是什么,以及我为什么要使用它……我很难想明白这一点。谢谢!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-10-05 02:40:48

反射允许您以编程方式加载程序集,获取程序集中所有类型的列表,获取这些类型中所有属性和方法的列表,等等。

举个例子:

代码语言:javascript
复制
myobject.GetType().GetProperty("MyProperty").SetValue(myobject, "wicked!", null)
票数 3
EN

Stack Overflow用户

发布于 2008-10-05 02:32:20

反射是如何探索不同类型的内部结构,而无需正常访问(即。私有的、受保护的等成员)。

它还用于动态加载DLL并访问其中定义的类型和方法,而无需将它们静态编译到您的项目中。

简而言之:反射是您的工具包,用于窥探一段代码的内部。

至于你为什么要使用它,它通常只在复杂的情况下使用,或者代码分析。另一个常见的用途是将预编译的插件加载到项目中。

票数 8
EN

Stack Overflow用户

发布于 2008-10-05 02:39:10

它允许对象的内部结构反映给外部世界(使用所述对象的代码)。

静态类型语言如C# (和Java)的一个实际用途是允许在运行时通过字符串调用方法/成员(例如,方法的名称-也许您不知道在编译时将使用的方法的名称)。

在动态语言的上下文中,我没有听说过这个术语(因为通常你不会担心上面的问题),除了迭代方法/成员列表等之外……

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/171366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档