Tip15 使用dynamic来简化反射实现
来源:互联网 发布:12864取模软件 编辑:程序博客网 时间:2024/05/19 13:59
Tip15 使用dynamic来简化反射实现
dynamic是Framework 4.0的新特性。dynamic的出现让C#具有了弱语言的特性,编译器默认dynamic对象支持开发者想要的任何特性。
var和dynamic完全是两个概念。var实际上是“语法糖”,编译器会自动匹配var变量的实际类型,并用实际类型来替换该变量的声明。而dynamic被编译后实际是一个object类型,不过编译器不会对dynamic进行任何的类型检查,在运行期才进行类型检查。
利用dynamic可以简化C#中的反射语法,例如:
public class DynamicSample { public string Name { get; set; } public int Add(int a,int b) { return a + b; } }
调用测试5000000次,比较dynamic和传统的反射效率:
int times = 5000000; DynamicSample reflectSample = new DynamicSample(); var addMethod = typeof(DynamicSample).GetMethod("Add"); Stopwatch watch1 = Stopwatch.StartNew(); for (int i = 0; i < times; i++) { addMethod.Invoke(reflectSample, new object[] { 1, 2 }); } Console.WriteLine(string.Format("反射耗时:{0} 毫秒", watch1.ElapsedMilliseconds)); Stopwatch watch2 = Stopwatch.StartNew(); dynamic dynamicSample = new DynamicSample(); for (int i = 0; i < times; i++) { dynamicSample.Add(1, 2); } Console.WriteLine(string.Format("dynamic耗时:{0} 毫秒", watch2.ElapsedMilliseconds));
结果如下:
反射耗时:2264 毫秒dynamic耗时:226 毫秒
阅读全文
0 0
- Tip15 使用dynamic来简化反射实现
- 使用dynamic来简化反射实现,并且提高了性能。
- 建议15: 使用dynamic来简化反射实现
- 使用dynamic简化反射
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用Java5特性来简化反射编程
- 使用dynamic实现反射,并提交性能
- 使用Java 5特性来简化反射编程
- 使用反射简化findviewbyid
- 使用反射技术实现对JDBC dao的简化
- 使用 easypermission 来简化代码,实现Android动态权限申请
- 使用反射来实现参数绑定
- 使用jOOR简化反射操作
- 使用反射、特性简化代码
- jquery mobile常用的data-role类型介绍
- Java多线程总结(二):理解对象锁 & synchronized和Lock的区别
- 二叉树遍历
- JQuery选择器中的空格问题
- JavaScript专题之jQuery通用遍历方法each的实现
- Tip15 使用dynamic来简化反射实现
- JS作用域的解析和代码执行的原理
- kafka安装配置
- jQuery Mobile入门
- 微信小程序(连载一)
- C++标准模板库
- css实现聊天气泡以及形状--边框法
- Android 图片压缩各种方式
- 冒泡、选择、快速、插入、希尔、归并排序算法的小结