Welcome

首页 / 软件开发 / C# / C# 4.0初探 - dynamic关键字

C# 4.0初探 - dynamic关键字2010-11-26 博客园 飘遥C#新增了dynamic关键字,正因为这一个小小的关键字,C#动态特性向前迈进 了一大步。

dynamic是一个类型关键字,声明为dynamic的类型与" 静态类型"(这里的静态类型是指编译时确定的类型,下同)相比最大的特 点它是"动态类型",它会运行时尝试调用方法,这些方法的存在与否 不是在编译时检查的,而是在运行时查找,如果方法存在并且参数正确,会正常 调用,否则会抛出Microsoft.CSharp.RuntimeBinder.RuntimeBinderException 异常。

看一个最简单的示例:

using System;

namespace Xianfen.Net.TestDynamic
{
class Program
{
static void Main()
{
dynamic d = Console.Out;
dynamic a;
a = new Int32();
int b = a;
a++;
a--;

d.WriteLine ("http://www.xianfen.net/");
d.WriteLine(d.GetType());
d.writeln("test"); //抛出 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException异常
}
}
}

对dynamic类型的操作只能有以下几种:

·赋值

·方法调用

·自增

·自减

·接受"静态类型"的构造器创建的对象