C#4.0初探:dynamic 关键字

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异常
        }
    }
}

NET技术C#4.0初探:dynamic 关键字,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。