码迷,mamicode.com
首页 > Windows程序 > 详细

C# 4.0 新特性dynamic (待学习)

时间:2016-12-15 00:51:01      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:main   stat   erb   bool   ring   contain   bin   实现   binder   

随便翻看了一下dynamic,在网上拷贝了一个例子,先贴出来等有空了再慢慢消化

static void Main(string[] args)
{
dynamic d = new MyDynamicObject();
d.Mytable = "ojlovecd";
d.ojlovecd = "wang";
Console.WriteLine(d.Mytable);//新加的字段,VS不会自动提示
Console.WriteLine(d.ojlovecd);//新加的字段,VS不会自动提示
Console.ReadKey();
}
/// <summary>
/// 需要先实现父类的两个虚方法
/// </summary>
class MyDynamicObject : System.Dynamic.DynamicObject
{
private Dictionary<string, object> dic = new Dictionary<string, object>();

public override bool TryGetMember(System.Dynamic.GetMemberBinder binder, out object result)
{
return dic.TryGetValue(binder.Name, out result) || base.TryGetMember(binder, out result);
}

public override bool TrySetMember(System.Dynamic.SetMemberBinder binder, object value)
{
if (dic.ContainsKey(binder.Name))
dic[binder.Name] = value;
else
dic.Add(binder.Name, value);
base.TrySetMember(binder, value);
return true;
}
}

C# 4.0 新特性dynamic (待学习)

标签:main   stat   erb   bool   ring   contain   bin   实现   binder   

原文地址:http://www.cnblogs.com/andayhou/p/6181478.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!