Welcome

首页 / 软件开发 / 数据结构与算法 / C#常用算法:Dynamic Object

C#常用算法:Dynamic Object2013-11-14Dynamic Object包含在.Net4.0中,该对象可以允许我们在运行时中改变它的类型,有了这种万金油还有什么问题是我们不能解决的呢?我们来看看它的几个使用例子吧:

Var类型和Dynamic类型

public static void TestDynamicObject(){ //var object and dynamic objectvar varObj = "this is a var object";dynamic dyObj = "this is a dynamic object";Console.WriteLine(varObj);Console.WriteLine(dyObj);dyObj = new string[] { dyObj, "I also can do it liking this!" };Console.WriteLine(dyObj[0]);Console.WriteLine(dyObj[1]);/*OUT PUT this is a var object this is a dynamic object this is a dynamic object I also can do it liking this!*/}
ExpandObject

public static void TestExpandObject(){dynamic data = new ExpandoObject();data.FirstAttribute = "FirstAttribute";data.SecondAttribute = "SecondAttribute";data.ThirdAttribute = "ThirdAttribute";ArrayList nums = new ArrayList();for (int i = 1; i <= 10; i++){nums.Add(i);}data.Nums = nums;foreach (int tmp in data.Nums){Console.WriteLine(tmp);}Console.WriteLine(data.FirstAttribute);Console.WriteLine(data.SecondAttribute);Console.WriteLine(data.ThirdAttribute);Action GB = () => { Console.WriteLine("This is dynamic method."); };data.MyMethod2 = GB;data.MyMethod2();Action<string> GhostBear = a => Console.WriteLine(a);data.MyMethod = GhostBear;data.MyMethod("Go!Go!Fighting!");/*OUT PUT 1 2 3 4 5 6 7 8 9 10 FirstAttribute SecondAttribute ThirdAttribute This is dynamic method. Go!Go!Fighting! */}