|
C# 4.0的主题就是动态编程(Dynamic Programming)。虽然C#仍然是一种静态预言,但是对象的意义开始变得越来越“动态”。它们的结构和行为无法通过静态类型来捕获,或者至少编译器在编译程序时无法得知对象的结构和行为。 public class Coffee
{ public string GetName() { return "You selected Maxwell coffee."; } } public class Juice { public string GetName() { return "You selected orange juice."; } } 现在,我们就可以用dynamic类型来表示这两种饮料。我们写一个函数GetDrink(),更加用户不同的选择返回不同的对象。 static private Object GetDrink(int i)
{ if (i == 1) { return new Juice(); } else // default { return new Coffee(); } } static void Main(string[] args) { Console.WriteLine("Please Select Your Drink: 1 -- Juice; 2 -- Coffee"); int nDrinkType = Console.Read(); dynamic drink = GetDrink( nDrinkType ); Console.WriteLine( drink.GetName() ); }
C#编译器允许你通过dynamic对象调用任何方法,即使这个方法根本不存在,编译器也不会在编译的时候报编译错误。只有在运行的时候,它才会检查这个对象的实际类型,并检查在它上面GetName()是什么意思。动态类型将使得C#可以以更加统一而便利的形式范围下列对象:
![]() 图1 初始页面
(责任编辑:admin) |






骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价