C# Dynamic Var Object 学习

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


简化反射

减少代码行数,提高效率

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值