伴随着vs2010的出现,c#4.0的诞生,与之而来的动态类型dynamic更是给net程序员们锦上添花,为自己的程序书写上带来了给大的便利。可到底怎么用,好不好用,效率这么样,也许是大家最迫切关注的,msdn虽然有简介和使用方法但效率问题才是是否实用的衡量标准和使用前提,本文将为您揭开谜底。

    一、var、dynamic简介。

    二、var、dynamic区别。

    三、var、dynamic、传统确定类型的效率对比。

一、var、dynamic简介

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]

、var、dynamic区别。

var、dynamic区别:

1.var程序编译时确定类型、dynamic程序运行时确定类型。

2.var 只能定义局部变量;dynamic可定义局部变量和类变量。

....

、var、dynamic、传统确定类型的效率对比。

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 />");

执行结果:

多次执行的结论:传统类型 效率 >= var 动态推断类型 > dynamic动态类型

[原创地址:http://www.cnblogs.com/stone_w/archive/2011/02/17/1957014.html]

动态类型var和dynamic和传统确定类型区别和效率相关推荐

  1. Dart语言var、dynamic、Object关键字的区别

    1.var关键字 Dart语言中var关键字可以接受任何类型的变量,但是一旦赋值,类型推断就会确定这个变量的类型 ,由于Dart是个强类型语言,不能在以后的赋值中变更其类型. var age = 10 ...

  2. var和dynamic的应用 var、动态类型 dynamic 深入浅析C#中的var和dynamic ----demo

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. var和dynamic的区别及如何正确使用dynamic?

    1.var与dynamic的区别   C#中的很多关键词用法比较容易混淆,var和dynamic就是其中一组,但其实它们是有本质的区别的.var 在编译阶段已经确定类型,在初始化时候,必须提供初始化的 ...

  4. var和dynamic的区别及如何正确使用dynamic ?

    C#中的很多关键词用法比较容易混淆,var和dynamic就是其中一组,他们都可以申明动态类型的变量,但是本质上他们还是有不少区别的.var 在编译阶段已经确定类型,在初始化时候,必须提供初始化的值, ...

  5. 理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用

    一. 为什么是它们三个? 拿这三者比较的原因是它们在使用的时候非常相似.你可以用它们声明的变量赋任何类型的值. 看看下面的示例: var a = 1;object b = 1; dynamic c = ...

  6. MVC 之var与dynamic

    如果你用MVC写过程序,那么你应该知道ViewBag这个用于前后台的数据传递工具,那么你是否对ViewBag的用法感到过疑惑呢? ViewBag.Mode1l=new object(); ViewBa ...

  7. 第七节:语法总结(1)(自动属性、out参数、对象初始化器、var和dynamic等)

    一. 语法糖简介   语法糖也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方 ...

  8. var与dynamic区别

    注意:var与dynamic这两个关键字,只是看起来很相 似,仅此而已! var表示"变量的类型是在编译时决定的",但是dynamic表 示"变量的类型是在运行时决定的& ...

  9. C#中的var和dynamic

    摘自:<C#中的var和dynamic> 静态类型语言也被称为强类型语言.所谓强类型语言,通俗的讲,就是在编译过程中执行类型检查的语言.我们举个简单的例子,比如我们知道一个方法的返回类型, ...

最新文章

  1. 【转】PendingIntent的总结
  2. MT8870DTMF解码器测试
  3. sqlite3.h--dbhelp.h数据库底层文件
  4. 鸟哥linux私房菜第6章笔记
  5. 创建hugo博客_如何创建您的第一个Hugo博客:实用指南
  6. 边缘设备上的实时AI虫害消除:入门
  7. python学习如何从菜鸟到老手
  8. 五万字整理Mybatis 入门只需要一篇文章
  9. 《2021年IT行业项目管理调查报告》发布
  10. Android ---创建APP数据库
  11. 2019年最实用的导航栏设计实践和案例分析全解
  12. 蘑菇街后台开发实习二面(视频面)
  13. 如何用微信编辑器排版出美观的图文消息
  14. HTML中的标记-遁地龙卷风
  15. python 20秒画完小猪佩奇“社会人”
  16. Knativa 基于流量的灰度发布和自动弹性实践
  17. 题目1155:鸡兔同笼
  18. HTML5播放器调用(功能效果)
  19. 信息科学学术论文常用词汇
  20. linux grep命令例子,Linux中grep命令的12个实践例子

热门文章

  1. Brave Game【博弈】
  2. 《自顶向下网络设计(第3版)》——导读
  3. Coreseek Windows下安装调试
  4. Data Collection
  5. Oracle 创建表空间,用户,赋值(简装)
  6. 配置java编译环境
  7. 开源中国iOS客户端学习——(八)网络通信AFNetworking类库
  8. 11.04.30 半夜清晨
  9. python3的pyqt5 qtablewidget按数据大小排列_InnoDB为什么要选择B+树来存储数据?
  10. Linux ftp 命令