C# var和dynamic的用法和理解

原创 2016年08月31日 14:55:47

var和dynamic的本质区别是类型判断的时间不同,前者是编译时,后者是运行时。


1.var在声明变量方面简化语法(只能是局部变量),在编译时交给编译器推断。


2.dynamic也是为简化语法而生的,它的类型推断是交给系统来执行的(运行时推断类型)。


3.var不能用于字段、参数等,而dynamic则可以。


4.var在初始化的时候就确定了类型。


5.dynamic可以用于方法字段、参数、返回值以及泛型参数,把动态发挥的淋漓尽致。


6.dynamic在反射方面做的可以,只是我自己没有尝试过。


7.var是C# 3.0的产物,dynamic是C# 4.0的产物。


最后还得关心一下效率问题:
越底层的效率越高
可以说是 传统强类型 >= var > dynamic,所以用dynamic的时候还得考虑性能和效率!


版权声明:本文为博主原创文章,未经博主允许不得转载,如果转载请写明出处。

相关文章推荐

C# 重构之四(提取接口重构)

提取接口”是一项重构操作,提供了一种使用来自现有类、结构或接口的成员创建新接口的简单方法。 当几个客户端使用类、结构或接口中成员的同一子集时,或者当多个类、结构或接口具有通用的成员子集时,在接口...

C# Func的用法

C#中Fun和前面介绍过的Action有点类似,都是一个委托方法 不同的是Func是有返回值的,而Action没有 Fun常用有两个参数,前面的是输入参数,后面的是输出参数(意味着是在另一部分运算中...

C# Action委托方法

第一次看到Action感觉很迷茫,它是干什么的,原来是个委托方法,这样就好理解了 看源码的声明 // // 摘要: // 封装一个方法,该方法只有一个参数并且不返回值。...

C# 重构之三(封装字段重构)

“封装字段”重构操作能够从现有字段中快速创建属性,然后通过对新属性的引用无缝更新代码。 当某个字段是 public 时,其他对象可以直接访问该字段并可对其进行修改,而拥有该字段的对象不会检测到。...

C# 重构之六(重新排列参数重构)

Reorder Parameters是一项 Visual C# 重构操作,提供了一种对方法、索引器和委托的参数顺序进行更改的简单方法。 Reorder Parameters会更改声明,并在调用该成员的...

关于c#中的Func<>和Action<>

Func其实本人自己基本上也没怎么用过,之所以会写出来主要是因为在一本书的示例代码中看到了这两个东西的使用,发现其实还是挺好用的,所以就写下来,有需要的阿猿们可以参考一下。 首先说一下,个人感觉就是...

C# 重构之五(移除参数重构)

移除参数重构 (C#) Remove Parameters 是一项重构操作,提供了一种将形参从方法、索引器或委托中移除的简单方法。 “移除参数”会更改声明;并在调用该成员的所有位置移除形...

C# 重构之二(重命名重构)

“重命名”是 Visual Studio 集成开发环境 (IDE) 中的一项重构功能,为重命名代码符号(如字段、局部变量、方法、命名空间、属性和类型)的标识符提供了一种简单的方法。   “重命名”功能...

C#中 Action<T>和Func<T>的用法

本文主要介绍了.net中两个内置的泛型委托类Action和Func,并通过具体的实例对其进行了介绍!

C#基础——Func和Action的介绍及其用法

Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如在反射中使用就可以弥补反射所损失的性能。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)