c 中如何理解 反射技术
5页1、C 中如何理解反射技术在搜索c#中反射技术时看到这样一篇文章,写的很有意思,下面是全文你首先要理解一下概念:一类型(Type)对象是什么比如objectx;x是对象,object就是它的类型,在程序中如何描述类型这个概念呢?就是Type(System.Type)。要获取某个类的类型可以用typeof()操作符objecta;objectb;DataTablet;aType=typeof(object);TypebType=typeof(object);tType=typeof(DataTable);aType=bType!=tType;二程序集(Assembly)就是你IDE生成的.exe或.dll文件的运行时就叫程序集。所有的代码都在程序集中。你可以通过Assembly.Load()系列函数动态加载程序集(这一步是动态+载代码的前提,因为所有的代码都在程序集中)。三动态加载我们普通调用代码是:对象名.方法名(参数列表);classavoidfunc(intx)publicstaticvoidMain(stringargs)/创建对象aa1=newa();/调用函数a1.func(1)
2、;用反射动态调用代码是/加载程序集System.Reflection.Assemblyasm=Assembly.LoadFile(assemblyPath);/获取类型TypeaType=asm.GetType(名字空间.类名);/获取没有参数的构造函数System.Reflection.ConstructorInfoconn=t.GetConstructor(newType0);/调用没有参数的构造函数,Invoke返回object它其是a类objecta1=conn.Invoke(newobject0);/获取参数类型为int,函数名为func的方法MethodInfomethod=t.GetMethod(func,newTypetypeof(int);/在a1上调用func方法,参数为1method.Invoke(a1,newobject1);动态调用(后一种方法)比静态调用更复杂,而且效率大概低20倍(网上有个哥们好像测试过)。只有在特殊的时候才调用动态加载动态调用-比如,你的主程序启动的时候子模块还没有,要根据登陆信息下载子模块代码并调用子模块代码,就只能用动态+载来实现了.
《c 中如何理解 反射技术》由会员小**分享,可在线阅读,更多相关《c 中如何理解 反射技术》请在金锄头文库上搜索。
2020年高考真题——理科综合(全国卷Ⅲ)+Word版含答案
2021年绝味鸭脖策划书
2021年熟食店创业方案
2021年熟食店开店策划
2021年卤菜店创业计划书
2021年周黑鸭网络营销策划方案
东大21年1月考试《现代设计方法》考核作业
谈我国行政管理效率的现状及其改观对策(论文)
单证员考试-备考辅导-复习资料:无贸易背景信用证案分析.docx
土木工程毕业生答辩自述.docx
建筑学毕业后工作状态真实写照.doc
C#代码规范(湖南大学).doc
xx区食药监局2019年工作总结及2020年工作计划
2019年中医院药物维持治疗门诊工人先锋号先进事迹
2019年度xx乡镇林长制工作总结
2019年性艾科工作计划书
2019年人才服务局全国扶贫日活动开展情况总结
关于组工信息选题的几点思考
摘了穷帽子 有了新模样
2019年某集团公司基层党支部书记培训班心得体会
2024-04-08 33页
2024-04-08 10页
2024-04-08 25页
2024-04-08 12页
2024-04-08 10页
2024-04-08 21页
2024-04-08 40页
2024-04-08 34页
2024-04-08 28页
2024-04-08 28页