zoukankan      html  css  js  c++  java
  • dynamic和var的区别

    1.var声明一个局部变量只是一种简化语法,它要求编译器根据一个表达式推断具体的数据类型。

    2.var只能用于声明方法内部的局部变量,而dynamic可用于局部变量,字段,参数。

    3.表达式不能转型为var,但能转型为dynamic。

    4.必须显式初始化用var声明的变量,但无需初始化用dynam声明的变量。

     

           常有人会拿var这个关键字来和dynamic做比较。实际上,var和dynamic完全是两个概念,根本不应该放在一起做 比较。var实际上是编译期抛给我们的“语法糖”,一旦被编译,编译期会自动匹配var 变量的实际类型,并用实际类型来替换该变量的申明,这看上去就好像我们在编码的时候是用实际类型进行申明的。而dynamic被编译后,实际是一个 object类型,只不过编译器会对dynamic类型进行特殊处理,让它在编译期间不进行任何的类型检查,而是将类型检查放到了运行期。

    这从visual studio的编辑器窗口就能看出来。以var声明的变量,支持“智能感知”,因为visual studion能推断出var类型的实际类型,而以dynamic声明的变量却不支持“智能感知”,因为编译器对其运行期的类型一无所知。对 dynamic变量使用“智能感知”,会提示“此操作将在运行时解析”

    总结:var表示“变量的类型是在编译时决定的”,但是dynamic表示“变量的类型是在运行时决定的”。因此,dynamic与var具有截然不同的含义。

  • 相关阅读:
    使用virtualenvwrapper隔离python环境
    Ubuntu创建launcher
    Python单步调试
    Jupyter增加内核
    扩展User增加部门字段
    EasyUI ComboBox默认值
    C#调用dll时的类型转换
    更改VisualStudio默认创建类和接口不加public问题
    IL学习资料
    服务注册中心,Eureka比Zookeeper好在哪里?
  • 原文地址:https://www.cnblogs.com/zhangchengye/p/5154338.html
Copyright © 2011-2022 走看看