在 C# 4.0 中使用动态关键字
2010-09-30 22:45:49 来源:WEB开发网静态类型检查的引入是编程语言史上一个重要的里程碑。在二十世纪七十年代,Pascal 和 C 等语言开始执行静态类型和强类型检查。有了静态类型检查,对于任何无法传递相应类型方法参数的调用,编译器都将产生错误。同样,如果您试图调用类型实例中不存在的方法,编译器也应该会产生错误。
推进动态类型检查这一相对应方法的其他语言在过去几年有所发展。动态类型检查否定了以下这一观点:即变量类型是在编译时静态确定的,当变量在作用域内时应该永远不变。不过请注意,动态类型检查并非认为各个类型都是相同的,可以对类型进行自由组合。例如,即使使用动态类型检查,您仍不能为整数添加布尔值。动态类型检查的不同之处在于,检查是发生在程序执行时,而不是编译时。
静态类型化与动态类型化
Visual Studio 2010 和 C# 4.0 提供了新的动态关键字,能够在传统上采用静态类型化的语言中实现动态类型化。不过,在深入了解 C#4.0 的动态方面之前,我们需要记录一些基本术语。
让我们定义某个变量,作为只能采用特定类型数值的存储位置。下一步,让我们说明静态类型化语言的四个基本属性:
每个表达式都属于已在编译时确定的类型。
变量只能属于已在编译时确定的类型。
编译器保证在将表达式指定给变量时采用的类型限制满足对变量的限制。
重载解析等语义分析任务发生在编译时,其结果会输入到程序集。
动态语言的属性正相反。每个表达式和每个变量的类型并未在编译时就确定。存储限制(如果有的话)是在运行时进行检查,而在编译时会被忽略。语义分析也只发生在运行时。
静态类型化语言确实可以实现某些操作的动态化。它们提供了转换运算符,供您作为运行时操作尝试进行类型转换。程序代码中已加入了转换功能,您可以将转换运算符所表达的语义总结为“动态检查此转换在运行时的有效性。”
- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
- ››使用 ADDRESS 与 INDIRECT函数查询信息
- ››使用 COLUMN函数编制单元信息
更多精彩
赞助商链接