C#中 dynamic 关键字

   所有表达式都能隐式的转换成dynamic,因为所有的表达式最终都能生成从Object派生出的类型。

            object a = 1;
            int b = a;     //隐式转换错误
            int b2 = (int)a;

            dynamic d1 = 1;
            int b3 = d1;   //可隐式转换

注意:

     不要混淆dynamic和var.用var声明局部变量只是一种简化语法,它要求编译器根据表达式推断具体数据类型。var只能在方法内部声明局部变量,而dynamic关键字可用于局部变量、字段、和参数。

表达式不能转换成var,但却能转型为dynamic。必须显式初始化var声明的变量,但是无需初始化用dynamic声明的变量。

 

posted @ 2017-04-17 16:01  乌梅  阅读(186)  评论(0编辑  收藏  举报