C# 4.0中的动态类型和动态编程
来源:互联网 发布:淘宝最漂亮的女童模特 编辑:程序博客网 时间:2024/05/10 07:53
C#引入了一种新的静态类型”dynamic”,当你拥有了一个dynamic类型的对象后,你“对它做的事情”只会在运行时进行解析。设想我们拥有这样两个类,分别表示两种饮料:
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#可以以更加统一而便利的形式表示下列对象:
◆ 来自动态编程语言——如Python或Ruby——的对象
◆ 通过IDispatch访问的COM对象
◆ 通过反射访问的一般.NET类型
◆ 结构发生过变化的对象——如HTML DOM对象
当我们得到一个动态类型的对象时,不管它是来自COM还是IronPython、HTML DOM还是反射,只需要对其进行操作即可,动态语言运行时(DLR)会帮我们指出针对特定的对象以及这些操作的具体意义。这将给我们的开发带来极大的灵活性,并且能够极大程度上地精简我们的代码。- C# 4.0中的动态类型和动态编程
- C#的动态类型ExpandoObject和DynamicObject
- c++中的静态和动态类型转换
- IOS开发中的多态性、动态类型和动态绑定
- Python中的动态类型
- C#4.0 新特性 动态类型Dynamic
- 动态类型和动态绑定,动态载入
- 静态编程语言、动态编程语言以及静态类型语言和动态类型语言
- oracle动态游标中的强类型和弱类型
- 动态和静态类型
- 静态类型和动态类型
- 动态类型和静态类型
- objective-C编程 对象的类型和动态绑定摘要
- C++中的动态类型判断
- 编程语言 动态类型 静态类型
- 四、多态、动态类型和动态绑定
- 9-多态、动态类型和动态绑定
- 多态、动态类型和动态绑定
- Android 邮件发送(一键发送, 163邮箱)
- 学习资料
- phpwind的密码及cookie加密方式
- Oracle初始口令
- GPXE
- C# 4.0中的动态类型和动态编程
- zoj 1180 Self Numbers
- android应用开发设计模式之策略模式
- 台式电脑处理器CPU性能排行榜(1-200)
- 客户端VML与SVG Web绘图
- GridView的表格用途
- 基于VML/SVG配电站接线系统
- oracle数据库导入导出命令!
- VC修改标题栏的名称和图标