• C#4.0中var和dynamic的区别


    1. var表示“变量的类型是在编译时决定的”, var让你在初始化变量时少输入一些字,编译器会根据右值来推断出变量的类型, var只能用于局部变量的定义,你不能把类的属性定义成 var,也不能把方法的返回值类型或者是参数类型定义成var

    2. dynamic表示“变量的类型是在运行时决定的”,动态语言运行时(dynamic language runtime DLR)是.NET Framework 4 Beta 1中的一组新的API,它提供了对c#中dynamic类型的支持, dynamic告诉编译器,根本就别理究竟是啥类型,运行时再推断不迟,dynamic类型并没有跳过类型校验,只是延迟到了运行时。如果在运行时,检测 到类型不兼容,照样会抛出异常。变量,属性,方法返回值类型及参数类型都可定义为dynamic。

    你可能在以下情况下使用dynamic:

    1.COM对象

    2.动态语言(如IronPython,IronRuby等)对象

    3.反射对象

    4.C# 4.0中动态创建的对象

    因此,dynamic与var具有截然不同的含义。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    1,var是C# 3中引入的,其实它仅仅只是一个语法糖. var本身并不是一种类型, 其它两者object和dynamic是类型。

    var声明的变量在赋值的那一刻,就已经决定了它是什么类型。主要用于linq;

    2,object之所以能够被赋值为任意类型的原因,其实都知道,因为所有的类型都派生自object. 所以它可以赋值为任何类型.

  • 相关阅读:
    win10 uwp 读取保存WriteableBitmap 、BitmapImage
    win10 uwp 读取保存WriteableBitmap 、BitmapImage
    win10 uwp 按下等待按钮
    win10 uwp 按下等待按钮
    win10 uwp 右击选择 GridViewItem
    win10 uwp 右击选择 GridViewItem
    PHP array_column() 函数
    PHP array_chunk() 函数
    PHP array_change_key_case() 函数
    PHP array() 函数
  • 原文地址:https://www.cnblogs.com/jimcsharp/p/5529554.html
Copyright © 2020-2023  润新知