请问 CType和DirectCast函数有何区别
2008-03-12 14:30
316 查看
DirectCast 关键字引入类型转换操作。该关键字的使用方法与 CType 关键字相同,如下列所示:
这两个关键字都将要转换的表达式作为第一个参数,而将要转换成的类型作为第二个参数。如果未定义表达式的数据类型与第二个参数所指定的数据类型之间的转换,那么这两种转换都会失败。
这两个关键字之间的差别在于:只要定义了表达式与类型之间的有效转换,CType 即可成功,而 DirectCast 则要求对象变量的运行时类型与指定的类型相同。不过,如果表达式的指定类型和运行时类型相同,则 DirectCast 的运行时性能比 CType 的运行时性能好。
在上例中,
如果参数类型不匹配,DirectCast 会引发 InvalidCastException 错误。
Dim Q As Object = 2.37 ' Requires Option Strict to be Off. Dim I As Integer = CType(Q, Integer) ' Succeeds. Dim J As Integer = [code]DirectCast(Q, Integer
)' Fails.[/code]
这两个关键字都将要转换的表达式作为第一个参数,而将要转换成的类型作为第二个参数。如果未定义表达式的数据类型与第二个参数所指定的数据类型之间的转换,那么这两种转换都会失败。
这两个关键字之间的差别在于:只要定义了表达式与类型之间的有效转换,CType 即可成功,而 DirectCast 则要求对象变量的运行时类型与指定的类型相同。不过,如果表达式的指定类型和运行时类型相同,则 DirectCast 的运行时性能比 CType 的运行时性能好。
在上例中,
Q的运行时类型为 Double。CType 因为 Double 可以转换成 Integer 而成功了,DirectCast 则因为
Q的运行时类型不是 Integer 而失败了。
如果参数类型不匹配,DirectCast 会引发 InvalidCastException 错误。
相关文章推荐
- DirectCast和CType的区别
- spark-kafka direct方式读取和receiver方式读取的区别
- 转:图解sendRedirect,include,forward的区别
- 请问一下vc++6.0中MFC部分的 “编辑”和Rich Edit有什么区别?
- response.sendRedirect()与request.getRequestDispatcher().forward(request,response)的区别
- 四、sendRedirect()和forward()方法的区别 -----HttpServletResponse接口的sendRedirect()方法和RequestDispatcher接口的forw
- jsp中forword和sendRedirect的区别
- socket2里面,有些函数带WSA开头,有些不带。请问有何区别?
- JavaScript 既是单线程又是异步的,请问这二者是否冲突,以及有什么区别?
- 让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别
- directdraw overlay 和flip及blt的区别
- servlet中请求转发(forword)与重定向(sendredirect)的区别
- servlet中请求转发(forword)与重定向(sendredirect)的区别
- spark-kafka direct方式读取和receiver方式读取的区别
- spark-kafka direct方式读取和receiver方式读取的区别
- forward和sendRedirect 的原理和区别
- 图解sendRedirect,include,forward的区别
- DO_BUFFERED_IO和DO_DIRECT_IO与其他方式的区别
- 请问编译原理中a(a|b)*a和aa*b*a有什么区别,谢谢。
- 重定向(forward与sendRedirect)区别