- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在还不太熟悉反射的昨天,以为反射很神秘,在网上到处找答案.今天找了段代码敲了一下,茅塞顿开!其实反射也就那么简单的一回事!??? 反射是一种机制,通过这种机制我们可以知道一个未知类型的类型信息.比如,有一个对象a,这个对象不是我们定义的,也许是通过网络捕捉到的,也许是使用泛型定义的,但我们想知道这个对象的类型信息,想知道这个对象有哪些方法或者属性什么的.甚至我们想进一步调用这个对象的方法.关键是现在我们只知道它是一个对象,不知道它的类型,自然不会知道它有哪些方法等信息.这时我们该怎么办?反射机制就是解决这么一个问题的.通过反射机制我们可以知道未知类型对象的类型信息. 再比如,我们有一个dll文件,我们想调用里面的类.现在假设这个dll文件的类的定义,数量等不是固定的,是经常变化的.也许某一天你要在这个dll里面增加一个类定义.也许你觉得这没什么问题,现在关键是我们在另一个程序集里面要调用这个dll,这是我们的程序必须能够适应这个dll的变化,也就是说即使改变了dll文件的定义也不需要改变我们的程序集.这时候我们就会使用一个未知dll.我们该怎么办?同样,反射机制帮助了我们,我们可以通过反射来实现. 说白了,反射就是能知道我们未知类型的类型信息这么一个东西.没什么神秘可讲! 今天我先讲一个获得程序集信息的例子. 下面我们来举一个例子.例子的思路是这样的:我们有一个dll.该dll里面有许多关于运动的类.每一个类记录了一种体育运动的信息.我们在另外一个程序里面要知道这个dll的信息:(如果你还不能明白我的意思,请耐心的照我的步骤把这个过程走一变!) 第一步:我们建一个文件Sport.cs.内容如下: using System; public abstract class Sport {?? protected string name;?? public abstract string GetDuration();?? public abstract string GetName(); } 咱们用命令"csc /t:library Sport.cs"编译它. 第二步,我们再建一个名为SomeSports.cs的文件,内容如下:using System;public class Football:Sport{?? public Football()?? {????? name = Football;?? }?? public override string GetDuration()?? {????? return four 15 minute quarters;?? }?????? public override string GetName()?? {????? return name;?? }}public class Hockey:Sport{?? public Hockey()?? {?????? name = Hockey;?? }?? public override string GetDuration()?? {?????? return three 20 minute periods;?? }?? public override string GetName()?? {?????? return name;?? }}public class Soccer:Sport{?? public Soccer()?? {?????? name = Soccer;?? }?? public override string GetDuration()?? {?????? return two 45 minute halves;?? }?? public override string GetName()?? {?????? return name;?? }} 下面我们用命令"csc /t:library /r:Sport.dll SomeSports.cs"编译该文件. 现在我们有了我们的运动信息dll文件.现在我们想通过程序知道里面有哪些类.请进入最后一步:第三步:我们创建文件AssemblyDemo.cs".内容如下:?using System;using System.Reflection;public class AssemblyDemo{???? public static void Main(string[] args)???? {???????? int i,j;????????? //==========================????????? //First the command line arguments are evaluated.if there isnt?
您可能关注的文档
最近下载
- 日立电梯UAX-Ⅱ图纸K3500429.pdf
- HP Prime快速入门手册.pdf VIP
- 汽车底盘系统检修(张振东)任务1 离合器踏板的检查与调整.ppt VIP
- 2025版北师大版数学二年级上册全册教学设计教案.pdf
- 汽车底盘系统检修(张振东)任务3 离合器分离轴承、压盘和从动盘的检修.ppt VIP
- 2023年人教版小升初语文模拟试卷含答案 .pdf VIP
- 慢性老年病患者日常用药误区及对策.doc VIP
- 人教版三年级上册数学全册教学设计(配2025年秋新版教材).docx
- 《人工环境工程学科奖学金2011预.doc VIP
- 初高中衔接课因式分解市公开课一等奖百校联赛获奖课件.pptx VIP
文档评论(0)