使用dynamic简化反射

通常我们这样使用反射来调用一个函数

MethodInfo fun = typeof(Person).GetMethod("Speak");
string msg = (string)fun.Invoke(new Person(), new object[]{"hehe"});

而使用dynamic可以简化这个流程,而且效率更高

// .NetFrameWork4.0新特性,unity目前的mono版本还支持不到...
dynamic person = new Person();
string msg = person.Speak("hehe");

当然优化后的反射效率更高,但书写太麻烦

Person p = new Person();
MethodInfo fun2 = typeof(Person).GetMethod("Add");
var delg = (Func<Person, string, string>)Delegate.CreateDelegate(typeof(Func<Person, string, string>), fun2);
string msg2 = delg(p, "hehe");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,099评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,077评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,632评论 4 61
  • 红酥手,黄藤酒,满城春色宫墙柳。东风恶,欢情薄,一怀愁绪,几年离索。错、错、错!春如旧,人空瘦,泪痕红邑鲛绡透。桃...
    别丢掉nzj阅读 1,076评论 0 0
  • 经常有读者让我推荐电影,思前想后,今天先推荐这十部。 我们每个人的一生,都会经历青春、爱情、奋斗、孤独……生命有限...
    怀左同学阅读 13,435评论 65 452

友情链接更多精彩内容