dynamic、object、var 之间的区别

dynamic .net 4.0  动态类型

ExpandoObject 应用

            dynamic Customer = new ExpandoObject();
Customer.Name = "Name001";
Customer.Age = 12;
Console.WriteLine(Customer.Name + Customer.Age);       

可实现不同类型之间的连接  

       static T Add<T>(T t1, T t2)

{
dynamic d1 = t1;
dynamic d2 = t2;

return (T)(d1 + d2);
}



 object  在和INT相加减时需要转换类型(int)obj,而后面得新赋值不同类型是没有问题的

            object obj = 123;
int kl = 1 + (int)obj;
obj = "df";



 var 在INT相加减时需要转换,但一开始赋值时也相应赋值类型,后面不能再赋值其它类型

            var vr = 123;
kl = vr + 1;



 dynamic  具有上面两都共同和不同不部分,即可以相加减也可以赋值不同类型

             dynamic dyn = 123;
kl = dyn + 1;
dyn = "adsf";



原文地址:https://www.cnblogs.com/hantianwei/p/2421111.html