DirectCast 关键字引入类型转换操作。该关键字的使用方法与 CType 关键字相同,如下列所示:

Dim Q As Object = 2.37   ' Requires Option Strict to be Off.
Dim I As Integer = CType(Q, Integer)   ' Succeeds.
Dim J As Integer = DirectCast(Q, Integer)   ' Fails.

这两个关键字都将要转换的表达式作为第一个参数,而将要转换成的类型作为第二个参数。如果未定义表达式的数据类型与第二个参数所指定的数据类型之间的转换,那么这两种转换都会失败。

这两个关键字之间的差别在于:只要定义了表达式与类型之间的有效转换,CType 即可成功,而 DirectCast 则要求对象变量的运行时类型与指定的类型相同。不过,如果表达式的指定类型和运行时类型相同,则 DirectCast 的运行时性能比 CType 的运行时性能好。

在上例中,Q 的运行时类型为 DoubleCType 因为 Double 可以转换成 Integer 而成功了,DirectCast 则因为 Q 的运行时类型不是 Integer 而失败了。

如果参数类型不匹配,DirectCast 会引发 InvalidCastException 错误。

转载于:https://www.cnblogs.com/aspnet-sqlserver/archive/2008/03/12/1102083.html

请问 CType和DirectCast函数有何区别相关推荐

  1. 头文件 ctype.h 以及函数 isalpha() tolower()

    ctype.h是C标准函数库中的头文件,定义了一批C语言字符分类函数(C character classification functions),用于测试字符是否属于特定的字符类别,如字母字符.控制字 ...

  2. 请问matlab里面exp函数怎么用啊,Matlab基本函数-exp函数

    1.exp函数:求以e为底的指数函数 2.用法说明:y=exp(x) 函数对数组元素x进行逐个处理的函数.函数定义域包括复数.对于复数z=a+b*i,有ez=(cos(b)+i*sin(b)*ea) ...

  3. 宏定义和函数有何区别

    宏在预处理阶段完成替换,之后被替换的文本参与编译,相当于直接插入了代码,运行时不存在函数调用,执行起来更快:函数调用在运行时需要跳转到具体调用函数.函数调用需要开辟和释放栈空间带来开销(存在函数调用压 ...

  4. python中函数不包括参数函数二阶导数公式_请问参数方程确定的函数的二阶导数公式的详细推导过程?...

    展开全部 y''=d(dy/dx)/dx=[d(dy/dx)/dt]*(dt/dx) 因变量由y换作dy/dx,自变量还是62616964757a686964616fe58685e5aeb931333 ...

  5. java ucs 2_请问UTF-8与UCS-2之间有何区别与联系?

    Unicode - UCS - 万国码 通用字符集 - UCS(Universal Character Set) 首先要说明的是Unicode和UCS并不是完全相同的概念 Unicode的实现方式不同 ...

  6. C语言基础之11:字符串和字符串函数

    Tips1: 函数:gets().gets_s().fgets().puts().fputs().strcat().strncat(). strcmp().strncmp().strcpy().str ...

  7. 零基础入门学习Python(16)-函数1,Python的乐高积木

    什么是函数? 函数就是把代码打包成不同形状的乐高积木,以便可以发挥想象力进行随意拼装和反复使用 一个程序可以按照不同功能的实现,分割成许许多多的代码块,每一个代码块就可以封装成一个函数 在Python ...

  8. c语言字符串 数字转换函数大全

    最近学数据结构老是做实验 常用到字符串和数字的转换 想找却发现网上的资料太散 所以搜集整理一下 方便以后再用 atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转 ...

  9. 函数atof,atoi,atol,strtod,strtol,strtoul 描述

    函数atof,atoi,atol,strtod,strtol,strtoul atof(将字串转换成浮点型数)  相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 # ...

最新文章

  1. 最全正則表達式汇总—想要的都有了
  2. 华东师范大学计算机学院陈蕾,华东师范大学计算机科学与技术学院——幸福e+工作室揭牌仪式暨名家讲座圆满举办...
  3. android好还是windows好,收银机操作系统哪种好?安卓系统与Windows系统区别?
  4. JavaScript基本概念——数据类型
  5. opencv简单滤波
  6. 红宝书阅读笔记——缓冲区对象
  7. Linux安装FTP服务-----vsftpd
  8. 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡 期望DP+高斯消元
  9. .class和getClass()的区别
  10. 四核处理器_2020年高通骁龙处理器排行榜
  11. 如何在linux当中,大量的添加用户
  12. SSAS系列——【05】多维数据(编程体系结构)
  13. 讯时网关IP对接PBX
  14. hello程序代码python_翻译:《实用的Python编程》01_02_Hello_world
  15. 什么是企业OA管理系统?企业公司oa管理系统软件价格攻略
  16. 高等数学笔记:三重积分下的坐标系变换
  17. 软件测试的简单理解以及与软件开发的区别
  18. 蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)
  19. 基于ImagePy工具的岩块图像二值化分割研究
  20. 【生物信息】ESTIMATE 分析免疫评分和肿瘤纯度

热门文章

  1. 关于jsp,javascript,php等语言
  2. iOS原生CIFilter创建二维码
  3. as3 physaxe 2d 物理引擎
  4. Java面试题谷歌插件
  5. dropload.js无限刷新解决方案
  6. Error: EACCES: permission denied, mkdir
  7. Android Log工具类,Toast工具类,获取当前方法名称
  8. android 动态设置View的高度和宽度,ViewTreeObserver使用
  9. 教你设置eclipse自动生成的author等注释
  10. html菜鸟ruby,Ruby 循环