原文学习url:http://www.cnblogs.com/qiuweiguo/archive/2011/08/03/2125982.html
动态变量类型Dynamic学习比较Var和Object
Dynamic为动态变量类型,在编译的时候不校验在运行时才转化类型,Dynamic可以和其他类型进行隐式转化
eg:
dynamic d1 = 7;
dynamic d2 = "a string";
dynamic d3 = System.DateTime.Today;
dynamic d4 = System.Diagnostics.Process.GetProcesses();
int i = d1;
string str = d2;
DateTime dt = d3;
System.Diagnostics.Process[] procs = d4;
比较于var,var为在编译时就转化为其应有的数据类型
eg:
<span style="font-size:18px;">var i=7;
var j="test";
编译后:
int i=7;
string j="test";
</span>
Dynamic在编译的时候不会转化为其应有的数据类型,而是在运行时在转换,就此而言,Dynamic更接近与Object,但是用法却更接近于Var
重载函数
当一大堆重载函数参数列表的个数一样,调用重载函数的时候使用Dynamic,那真是画美不看,
eg:
//申明的重载函数
public void test(int i){};
public void test(float i){};
public void test(string i){};
//调用
Dynamic i=data;
test(i);//慢慢找
eg2:
//申明的函数
public void test(dynamic i){};
//调用
test(1);
test("test");
简化反射
减少代码行数,提高效率
引用原文中有例子,不在陈述= =