动态类型var和dynamic和传统确定类型区别和效率

    伴随着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]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

epel yum源

如果既想获得 RHEL 的高质量、高性能、高可靠性&#xff0c;又需要方便易用(关键是免费)的软件包更新功能&#xff0c;那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好适合你。EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造&…

Windows 7 设置devenv.exe启动版本

我机子上装了有vs 05、vs 08、vs 10如果按上顺序安装的话&#xff0c;在 运行 > devenv 就可以打开最新的vs10 工具&#xff0c;如果顺序是乱的话&#xff0c;就没那么幸运了&#xff0c;也就是说你最后安装的版本将会被你的 devenv 命令打开&#xff0c;原因是最后一次安装…

手把手带你玩转Tensorflow 物体检测 API (4)—— 模型验证

致谢声明 本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型&#xff08;2&#xff09;——训练并使用自己的模型》的基础上优化并总结&#xff0c;此博客链接&#xff1a;https://blog.csdn.net/dy_guox/article/details/79111949&#xff0c;感谢此博…

java 获得文件的行数据_Java 读取文件指定行数据

public class ReadFileDemo1 {/*** 获取错误文件中的记录号* param sourceFile* return*/public static int[] readBadFile(String sourceFile){FileReader in null;LineNumberReader reader null;int[] array new int[0];try {//获取文件总行数long totalLine Files.lines…

几款浏览器JavaScript调试工具

WEB开发工具的使用已经非常普及&#xff0c;如果想要更方便于开发的话&#xff0c;不妨看看本文介绍的15款基于浏览器扩展的WEB开发工具。 1.Firebug Firebug是一款基于Firefox的浏览器扩展组件&#xff0c;它集成了网页CSS &#xff0c;文档对象模型( DOM )和JavaScript调试技…

mysql tomcat列表增删改查_Tomcat-Database

Tomcat-Database介绍根据Tomcat9源码二次开发&#xff0c;增加数据库功能&#xff0c;可一行代码实现CURD安装教程需要先配置Ant&#xff0c;然后在根目录下执行ant命令&#xff0c;即可编译&#xff0c;编译后的目录在Tomcat-Database/output/build下&#xff0c;其中在bin下可…

fatal error C1010: unexpected end of file while looking for precompiled head

致命错误C1010&#xff1a;在寻找预编译指示头文件时&#xff0c;文件未预期结束。 就是没有找到预编译指示信息的头文件。 问题一般发生在&#xff1a;通过添加文件的方式&#xff0c;添加了一些cpp文件到一个MFC的程序&#xff0c;但该cpp文件并不是MFC&#xff0c;而是标准…

Kafka集群部署CentOS 7

一、前言 1、Kafka简介 Kafka是一个开源的分布式消息引擎/消息中间件&#xff0c;同时Kafka也是一个流处理平台。Kakfa支持以发布/订阅的方式在应用间传递消息&#xff0c;同时并基于消息功能添加了Kafka Connect、Kafka Streams以支持连接其他系统的数据(Elasticsearch、Had…

Asp.net中Js、Css文件压缩辅助类

类名&#xff1a;WebCompressUtility.cs 代码如下&#xff1a; /// <summary>/// Js、Css文件压缩辅助类/// Stone_W/// 2011.6.21/// </summary>public class WebCompressUtility{public WebCompressUtility() { }#region 判断浏览器是否支持指定压缩/// <sum…

mysql+e+文件+xls_TP5+PHPexcel导入xls,xlsx文件读取数据

首先:在extend里面引入PHPexcel文件,直接根目录导入进去html创建上传按钮上传excel上传文件立即提交重置layui.use([form,upload],function(){var formlayui.form;var uploadlayui.upload;upload.render({ //允许上传的文件后缀elem: #myfile,url: "{:url(sale/do_uploa…

SQL Server 2008 FILESTREAM特性管理文件

在SQL Server 2008中&#xff0c;新的FILESTREAM&#xff08;文件流&#xff09;特性和varbinary列配合&#xff0c;你可以在服务器的文件系统上存储真实的数据&#xff0c;但可以在数据库上下文内管理和访问&#xff0c;这个特性让SQL Server不仅可以维护好数据库内记录的完整…

IP地址、手机归属和身份证查询接口

1. 查询手机&#xff1a;http://www.yodao.com/smartresult-xml/search.s?typemobile&q手机号码 2. 查询IP&#xff1a;http://www.yodao.com/smartresult-xml/search.s?typeip&qIP地址 3. 查询身份证&#xff1a;http://www.yodao.com/smartresult-xml/search.s?…

mysql5.6.24安装perl_mysql5.6源码安装

背景&#xff1a;现有mysql版本为5.5.40&#xff0c;考虑到以后需做主从&#xff0c;而5.6在主从方面、mysql读写方面都有很大提升。所以&#xff0c;准备升级。官网&#xff1a;http://www.mysql.com/环境&#xff1a;centos6.5 X86_64安装目录&#xff1a;/database/mysql解压…

把字符串转化为类型

问题&#xff1a;可以得到类型的String格式的名称&#xff0c;想要转化为相应的类型&#xff1f; ps&#xff1a;今天定义了好多个枚举类型&#xff0c;把枚举名称存放在一个ComboBox类名&#xff0c;控件值改变的时候要查询出这个枚举的所有属性集合&#xff0c;刚开始想到反…

System.Drawing.Color转System.Windows.Media.Color

2019独角兽企业重金招聘Python工程师标准>>> //这是两个不同的类 System.Windows.Media.Color color (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(transItemList[i].color.Name); 转载于:https://my.oschina.net/SearchVe…

Prometheus 监控Mysql服务器及Grafana可视化

Prometheus 监控Mysql服务器及Grafana可视化 mysql_exporter&#xff1a;用于收集MySQL性能信息。 使用版本mysqld_exporter 0.11.0官方地址使用文档&#xff1a;https://github.com/prometheus/mysqld_exporter图标模板&#xff1a;https://grafana.com/dashboards/7362下载…

visual studio 2010 如何修改assemblyInfo.cs默认值

这个应该是安装系统时的单位名称。修改HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization的值即可。另外&#xff0c;可以修改项目模板里面的内容C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\W…

mysql重要的监控参数_zabbix3.0.2使用percona mysql插件来监控mysql5.7   以及必须监控的性能参数...

http://tongcheng.blog.51cto.com/6214144/1620158http://www.cnblogs.com/caoxiaojian/p/5706992.htmlhttp://blog.csdn.net/mchdba/article/details/51447750对比zabbix全方位监控mysql&#xff0c;尤其注意以下监控项MySQL InnoDB Buffer Poolpool sizedatabase pages In…

Microsoft SQL Server 2005 提供了一些工具来监控数据库

--WL 09-07-03/*Microsoft SQL Server 2005 提供了一些工具来监控数据库。方法之一是动态管理视图。动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务器状态信息可用于监控服务器实例的运行状况、诊断问题和优化性能。常规服务器动态管理对象包括&#xff1a;dm_db_*&#…

关于ORA-01187: cannot read from file because it failed verification tests 的处理方法

环境&#xff1a;OELOracle 11.2.0.3physical standby 问题描述&#xff1a;查询dba_temp_files试图时显示Ora-01187错误号&#xff1b; ORA-01187: cannot read from file because it failed verification tests ORA-01110: data file 201: /oradata/seven/temp01.dbf 重现下…