C# Dynamic Var Object 学习

来源:互联网 发布:dnf数据出现异常 编辑:程序博客网 时间:2024/06/05 07:09

原文学习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");


简化反射

减少代码行数,提高效率

引用原文中有例子,不在陈述= =

0 0