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

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

 2010-09-30 22:45:49 来源:WEB开发网   
核心提示:静态类型检查的引入是编程语言史上一个重要的里程碑,在二十世纪七十年代,在 C# 4.0 中使用动态关键字,Pascal 和 C 等语言开始执行静态类型和强类型检查,有了静态类型检查,供您作为运行时操作尝试进行类型转换,程序代码中已加入了转换功能,对于任何无法传递相应类型方法参数的调用,编译器都将产生错误

静态类型检查的引入是编程语言史上一个重要的里程碑。在二十世纪七十年代,Pascal 和 C 等语言开始执行静态类型和强类型检查。有了静态类型检查,对于任何无法传递相应类型方法参数的调用,编译器都将产生错误。同样,如果您试图调用类型实例中不存在的方法,编译器也应该会产生错误。

推进动态类型检查这一相对应方法的其他语言在过去几年有所发展。动态类型检查否定了以下这一观点:即变量类型是在编译时静态确定的,当变量在作用域内时应该永远不变。不过请注意,动态类型检查并非认为各个类型都是相同的,可以对类型进行自由组合。例如,即使使用动态类型检查,您仍不能为整数添加布尔值。动态类型检查的不同之处在于,检查是发生在程序执行时,而不是编译时。

静态类型化与动态类型化

Visual Studio 2010 和 C# 4.0 提供了新的动态关键字,能够在传统上采用静态类型化的语言中实现动态类型化。不过,在深入了解 C#4.0 的动态方面之前,我们需要记录一些基本术语。

让我们定义某个变量,作为只能采用特定类型数值的存储位置。下一步,让我们说明静态类型化语言的四个基本属性:

每个表达式都属于已在编译时确定的类型。

变量只能属于已在编译时确定的类型。

编译器保证在将表达式指定给变量时采用的类型限制满足对变量的限制。

重载解析等语义分析任务发生在编译时,其结果会输入到程序集。

动态语言的属性正相反。每个表达式和每个变量的类型并未在编译时就确定。存储限制(如果有的话)是在运行时进行检查,而在编译时会被忽略。语义分析也只发生在运行时。

静态类型化语言确实可以实现某些操作的动态化。它们提供了转换运算符,供您作为运行时操作尝试进行类型转换。程序代码中已加入了转换功能,您可以将转换运算符所表达的语义总结为“动态检查此转换在运行时的有效性。”

1 2 3 4  下一页

Tags:使用 动态 关键字

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