浅谈vb.net中的反射机制

浅谈vb.net中的反射机制,第1张

概述我们在做机房收费系统用到了反射,但是只是知道这么简单的使用,但没想我们为 什么使用它? 化繁为简,还是那个哲学上经典的提问(你是谁?你从哪里来?你到哪里去?)? (1)反射是什么东东呢?           想到”反射”这概念,我们日常生活中,印象最深刻的是可能就是:光的反射           而在设计模式中反射的概念:           要指程序可以访问、检测和修改它本身状态或行为的一种能力

我们在做机房收费系统用到了反射,但是只是知道这么简单的使用,但没想我们为 什么使用它?

化繁为简,还是那个哲学上经典的提问(你是谁?你从哪里来?你到哪里去?)?

(1)反射是什么东东呢?

想到”反射”这概念,我们日常生活中,印象最深刻的是可能就是:光的反射

而在设计模式中反射的概念:

要指程序可以访问、检测和修改它本身状态或行为的一种能力。


这听起来真晕啊!毕竟是浅谈,我们还是拿例子说事吧。

我们只要在程序的顶端写上using system.Reflection ;这样就可以应用反射了。

反射的格式: Assembly.Load("程序集名称").CreateInstance(“命名空间.类的名称”)

Assembly.Load(“程序集名称”)这个方法:表示动态加载程序集。

CreateInstance(“命名空间.类的名称”)这个方法:表示创建类的实例。

谈到这儿,那就不得不说明什么是“程序集”和“命名空间”了。


程序集(Assembly):通常来说一个项目就是一个程序集。例如我们做的7层架构

的机房收费系统,就表示有7个程序集(至于这么划分程序集,对于初学者挺难)



命名空间(namespace):引入它的目的,主要避免一个项目中,存在相同的对象名的冲突。查阅了一些高 手的博客:他们是这样比喻的:命名空间就像我们中国姓氏中的“姓”,每个对象的名字就像姓名中的“名”。


而程序集和命名空间的关系不一定是一一对应的,也不互补包含。

这里默认程序集名称和命名空间是一致的,这里修改的,如果不一致,会出现动态 生成时找不到类,这样的错误。因此这里最好把他们设置一致。

程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装、 模块和类型的对象

(2)为什么要使用反射?

大家都懂的:如果我们不使用反射:就把实例化写死在程序里了。

而反射是利用字符串来实例化对象,而字符串是可以写成变量的 而变量是可以更换的。这也是反射的核心所在!

总结

以上是内存溢出为你收集整理的浅谈vb.net中的反射机制全部内容,希望文章能够帮你解决浅谈vb.net中的反射机制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1271303.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存