动态类型var和dynamic和传统确定类型区别和效率
2011-02-17 15:23
260 查看
伴随着vs2010的出现,c#4.0的诞生,与之而来的动态类型dynamic更是给net程序员们锦上添花,为自己的程序书写上带来了给大的便利。可到底怎么用,好不好用,效率这么样,也许是大家最迫切关注的,msdn虽然有简介和使用方法但效率问题才是是否实用的衡量标准和使用前提,本文将为您揭开谜底。
一、var、dynamic简介。
二[b]、var、dynamic区别。[/b]
三[b]、var、dynamic、传统确定类型的效率对比。[/b]
一、[b]var、dynamic简介[/b]
1.var简介:动态推断类型,net framework 3.5新出的一个定义变量的类型,其实也就是弱化类型的定义,在代码转移时候确定类型。
msdn参考:[http://msdn.microsoft.com/zh-cn/library/bb383973.aspx]
百度百科参考:[http://baike.baidu.com/view/407694.htm]
2.dynamic简介:动态类型,net framework 4.0新出的一个定义变量的类型,在代码运行的时候确定类型。
msdn参考:[http://msdn.microsoft.com/zh-cn/library/dd264741.aspx]
二[b]、var、dynamic区别。[/b]
var、dynamic区别:
1.var程序编译时确定类型、dynamic程序运行时确定类型。
2.var 只能定义局部变量;dynamic可定义局部变量和类变量。
....
三[b]、var、dynamic、传统确定类型的效率对比。[/b]
var、dynamic、传统确定强类型究竟谁能称王,成为武林中的霸主,下面通过本人的代码和运行结果已见分晓。
代码思路,执行同样的操作,给一个StudentInfo类赋值和打印100000次,有计时器查看运行的时间,代码如下:
View Code
执行结果:
![](http://pic002.cnblogs.com/images/2011/172074/2011021715215016.jpg)
多次执行的结论:传统类型 效率 >= var 动态推断类型 > dynamic动态类型
[原创地址:http://www.cnblogs.com/stone_w/archive/2011/02/17/1957014.html]
一、var、dynamic简介。
二[b]、var、dynamic区别。[/b]
三[b]、var、dynamic、传统确定类型的效率对比。[/b]
一、[b]var、dynamic简介[/b]
1.var简介:动态推断类型,net framework 3.5新出的一个定义变量的类型,其实也就是弱化类型的定义,在代码转移时候确定类型。
msdn参考:[http://msdn.microsoft.com/zh-cn/library/bb383973.aspx]
百度百科参考:[http://baike.baidu.com/view/407694.htm]
2.dynamic简介:动态类型,net framework 4.0新出的一个定义变量的类型,在代码运行的时候确定类型。
msdn参考:[http://msdn.microsoft.com/zh-cn/library/dd264741.aspx]
二[b]、var、dynamic区别。[/b]
var、dynamic区别:
1.var程序编译时确定类型、dynamic程序运行时确定类型。
2.var 只能定义局部变量;dynamic可定义局部变量和类变量。
....
三[b]、var、dynamic、传统确定类型的效率对比。[/b]
var、dynamic、传统确定强类型究竟谁能称王,成为武林中的霸主,下面通过本人的代码和运行结果已见分晓。
代码思路,执行同样的操作,给一个StudentInfo类赋值和打印100000次,有计时器查看运行的时间,代码如下:
View Code
Stopwatch s1 = new Stopwatch(); s1.Start(); for (int i = 0; i < 100000; i++) { var stu = new StudentInfo(); stu.Name = "a"; stu.Age = "abc"; } s1.Stop(); Response.Write("1.var动态推断类型:" + s1.ElapsedMilliseconds + "<br />"); Stopwatch s2 = new Stopwatch(); s2.Start(); for (int i = 0; i < 100000; i++) { dynamic stu = new StudentInfo(); stu.Name = "a"; stu.Age = "abc"; } s2.Stop(); Response.Write("2.dynamic动态类型:" + s2.ElapsedMilliseconds + "<br />"); Stopwatch s3 = new Stopwatch(); s3.Start(); for (int i = 0; i < 100000; i++) { StudentInfo stu = new StudentInfo(); stu.Name = "a"; stu.Age = "abc"; } s3.Stop(); Response.Write("3.传统确定强类型:" + s3.ElapsedMilliseconds + "<br />");
执行结果:
![](http://pic002.cnblogs.com/images/2011/172074/2011021715215016.jpg)
多次执行的结论:传统类型 效率 >= var 动态推断类型 > dynamic动态类型
[原创地址:http://www.cnblogs.com/stone_w/archive/2011/02/17/1957014.html]
相关文章推荐
- 动态类型var和dynamic和传统确定类型区别和效率
- C# 匿名对象(匿名类型)、var、动态类型 dynamic
- var和dynamic的应用 var、动态类型 dynamic 深入浅析C#中的var和dynamic ----demo
- C# 匿名对象(匿名类型)、var、动态类型 dynamic
- 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic
- c# 把一个匿名对象赋值给一个Object类型的变量后,怎么取这个变量? c# dynamic动态类型和匿名类 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 深入浅析C#中的var和dynamic
- C# 匿名对象(匿名类型)、var、动态类型 dynamic
- 登山-C#-var关键字,dynamic关键字和类型强制转换之间的区别
- 代码演示 .NET 中普通方法的调用、反射调用、动态(Dynamic)调用的区别
- var_export 和 var_dump对Resource类型的区别
- Dynamic和Var的区别及dynamic使用详解
- 标准c++的类型转换符之间的区别(static_cast,dynamic_cast,const_cast,reinterpret_cast)(转载)
- Castle 系列: Castle DynamicProxy动态生成透明代理类型
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- ViewBag、ViewData 和 TempData 的区别 及 Dynamically Typed Object 动态类型介绍
- Dynamic 动态类型 和双问号??的使用
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 【转载】编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别