C# 反射机制和作用

第一件事就是:反射很慢,消耗性能。

反射:可以通过程序集,类型,类型实例获取该程序集内【所有类型+类型所有字段+类型字段的类型,方法,方法的访问类型,参数和返回值等等。。。】

作用<1> Json或XML解析,用于实例化一个class类,当然需要该class类和jsondata或XML data的内容相匹配。
评价:很鸡肋的用法——如果你很懒,不想写反射机制的相关代码,完全可以用JsonMapper等工具实现,其内部也是用反射实现的。而且初始化对象可以用二进制序列化文件,比XML和Json高效,可压缩,可加密(protocolBuf或序列化器)

作用<2>应用于工厂 :把要创建的类型的当做参数去创建相应的对象
评价:好的面向对象设计可以避免反射,比如面向抽象编程,面向接口编程
优点:此处反射唯一的好处是可以把创建的类写到Json,通过Assetbunddle download json,可以在游戏发布后还可以控制控制创建物体的类型。

作用<3> 对于第三方插件。比如C++写的DLL,导入DLL后你怎么知道里面包含了哪些类,类的命名空间,哪些字段,字段的类型,哪些方法,方法的参数和返回值?特别是你通过“DLL查看器”,看到一个函数很可能就是你想要的,但是你不知道其参数类型和返回值类型,怎么办?答案就是反射。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值