DirectCast的详细解说(微软官方说明)
2008-01-28 23:01
309 查看
DirectCast
介绍基于继承或实现的类型转换操作。
备注
在 Object 数据类型之间来回转换时,DirectCast 不使用 Visual Basic 运行时帮助器例程进行转换,因此它可以提供比 CType 更好一些的性能。
使用 DirectCast 关键字的方法与使用 CType 函数和 TryCast 关键字相同。提供一个表达式作为第一个参数,提供一个类型以将它转换为第二个参数。DirectCast 需要两个参数的数据类型之间的继承或实现关系。这意味着一个类型必须继承或实现另一个类型。
示例
下面的示例演示 DirectCast 的两种用法,一种在运行时发生失败,另一种取得成功。
Visual Basic
复制代码
以上示例中,q 的运行时类型为 Double。CType 能够成功是因为 Double 可被转换为 Integer。但是,第一个 DirectCast 在运行时失败是因为 Double 的运行时类型与 Integer 没有继承关系,即使是可以进行转换。第二个 DirectCast 成功是因为它从 Form 类型转换为 Control 类型,而 Form 继承自该类型。
介绍基于继承或实现的类型转换操作。
备注
在 Object 数据类型之间来回转换时,DirectCast 不使用 Visual Basic 运行时帮助器例程进行转换,因此它可以提供比 CType 更好一些的性能。
使用 DirectCast 关键字的方法与使用 CType 函数和 TryCast 关键字相同。提供一个表达式作为第一个参数,提供一个类型以将它转换为第二个参数。DirectCast 需要两个参数的数据类型之间的继承或实现关系。这意味着一个类型必须继承或实现另一个类型。
错误和失败
如果 DirectCast 检测到不存在继承或实现关系,则生成一个编译器错误。但是没有出现编译器错误并不能保证肯定进行了成功的转换。如果需要的转换为收缩转换,则可能在运行时失败。如果发生这种状况,运行库会引发一个 InvalidCastException 错误。转换关键字
类型转换关键字的对比如下。关键字 | 数据类型 | 参数关系 | 运行时故障 |
---|---|---|---|
CType 函数 | 任何数据类型 | 必须在两种数据类型之间定义扩大转换或收缩转换 | 引发 InvalidCastException |
DirectCast | 任何数据类型 | 一个类型必须继承或者实现另一个类型 | 引发 InvalidCastException |
TryCast | 仅引用类型 | 一个类型必须继承或者实现另一个类型 | 返回 Nothing (Visual Basic) |
示例
下面的示例演示 DirectCast 的两种用法,一种在运行时发生失败,另一种取得成功。
Visual Basic
复制代码
Dim q As Object = 2.37 Dim i As Integer = CType(q, Integer) ' The following conversion fails at run time Dim j As Integer = DirectCast(q, Integer) Dim f As New System.Windows.Forms.Form Dim c As System.Windows.Forms.Control ' The following conversion succeeds. c = DirectCast(f, System.Windows.Forms.Control)
以上示例中,q 的运行时类型为 Double。CType 能够成功是因为 Double 可被转换为 Integer。但是,第一个 DirectCast 在运行时失败是因为 Double 的运行时类型与 Integer 没有继承关系,即使是可以进行转换。第二个 DirectCast 成功是因为它从 Form 类型转换为 Control 类型,而 Form 继承自该类型。
相关文章推荐
- 黄聪:dedeCms搬家说明-官方教程绝对有够详细
- 微软官方说明文档 免激活合法运行Vista一年
- dedeCms搬家说明-官方教程绝对有够详细
- dedeCms搬家说明-官方教程绝对有够详细
- htmlhelper 微软社区详细说明大全
- 【caffe】Caffe的Python接口-官方教程-01-learning-Lenet-详细说明(含代码)
- Direct2D (21) : 微软官方关于路径的示例
- 关于多网卡配置问题微软相关官方说明
- 微软官方安装正版Windows10详细方法,或者安装win10双系统
- 部落冲突(Clash of Clans)12月更新官方资料:可掠夺资源比例调整的详细说明
- MDT 2013 UPDATE 1 微软官方部署简体中文、繁体中文、英文版说明
- 微软官方公布 Win10详细的免费升级路径计划
- 【caffe】Caffe的Python接口-官方教程-00-classification-详细说明(含代码)
- 百度官方提供的API详细帮助文档说明
- 杰奇一些安装详细说明文件,比官方更细
- 微软ASP.NET AJAX框架详细说明
- sphinxql如何得到结果数及show meta的详细说明
- CKEditor config.js 详细配置说明
- Win2D 官方文章系列翻译 - 与 Direct2D 互操作
- ORACLE RAC 中 SRVCTL 命令详细说明文档