WEB开发网
开发学院软件开发C语言 在 C# 4.0 中使用动态关键字 阅读

在 C# 4.0 中使用动态关键字

 2010-09-30 22:45:49 来源:WEB开发网   
核心提示: 其次,您的对象从本质上讲可能就是变化的,在 C# 4.0 中使用动态关键字(3),您处理的可能正是 IronPython 和 IronRuby 等动态编程环境所生成的对象,不过,然后尝试在此函数中对它进行 double 操作,看看发生什么,您还可以使用此功能来处理 HTML DOM 对象(这取决

其次,您的对象从本质上讲可能就是变化的。您处理的可能正是 IronPython 和 IronRuby 等动态编程环境所生成的对象。不过,您还可以使用此功能来处理 HTML DOM 对象(这取决于 expando 属性)和在创建时专门指定了动态属性的 Microsoft .NET Framework 4 对象。

使用动态变量

一定要理解以下概念:在 C# 类型系统中,动态是一种类型。动态的含义非常特殊,但它绝对是一种类型,一定要将它看作类型。您可以将动态指定为自己所声明变量的类型、集合中的项目类型或某方法的返回值,还可以将动态用作方法参数的类型;不过,您不可以将动态用于运算符类型,也不可以将其用作类的基类型。

下面的代码说明了如何在方法主体中声明动态变量:

public void Execute() { 
 dynamic calc = GetCalculator(); 
 int result = calc.Sum(1, 1); 
}

如果您充分了解由 GetCalculator 方法返回的对象类型,您可以声明该类型的变量 calc,也可以作为 var 声明变量,以供编译器了解具体细节。不过,使用 var 或显式静态类型,要求您确定 GetCalculator 所返回类型的约定上存在 Sum 方法。如果该方法不存在,您就会收到编译器错误。

采用动态方法,您可以推迟到执行时再确定表达式是否正确。只要方法 Sum 存在于变量 calc 所存储的类型中,代码即会得到编译,并在运行时得到解析。

您还可以使用此关键字在类上定义属性。这样做,您就可以用公共、受保护甚至静态等所需的任何可见性修饰符修饰此成员。

图 1 显示了动态关键字的通用性。主程序包含了根据某函数调用的返回值进行实例化的动态变量。因为此函数会接收并返回动态对象,所以即便没有实现实例化,也无关紧要。在这个例子中,您传递一个数字,然后尝试在此函数中对它进行 double 操作,看看发生什么,会很有趣。

上一页  1 2 3 4  下一页

Tags:使用 动态 关键字

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接