DirectCast和CType的区别
2008-06-17 16:42
423 查看
摘于网络:
DirectCast 关键字引入类型转换操作。该关键字的使用方法与 CType 关键字相同,如下列所示:
这两个关键字都将要转换的表达式作为第一个参数,而将要转换成的类型作为第二个参数。如果未定义表达式的数据类型与第二个参数所指定的数据类型之间的转换,那么这两种转换都会失败。
这两个关键字之间的差别在于:只要定义了表达式与类型之间的有效转换,CType 即可成功,而 DirectCast 则要求对象变量的运行时类型与指定的类型相同。不过,如果表达式的指定类型和运行时类型相同,则 DirectCast 的运行时性能比 CType 的运行时性能好。
在上例中,
如果参数类型不匹配,DirectCast 会引发 InvalidCastException 错误。
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 = [code]DirectCast(Q, Integer
)' Fails.[/code]
这两个关键字都将要转换的表达式作为第一个参数,而将要转换成的类型作为第二个参数。如果未定义表达式的数据类型与第二个参数所指定的数据类型之间的转换,那么这两种转换都会失败。
这两个关键字之间的差别在于:只要定义了表达式与类型之间的有效转换,CType 即可成功,而 DirectCast 则要求对象变量的运行时类型与指定的类型相同。不过,如果表达式的指定类型和运行时类型相同,则 DirectCast 的运行时性能比 CType 的运行时性能好。
在上例中,
Q的运行时类型为 Double。CType 因为 Double 可以转换成 Integer 而成功了,DirectCast 则因为
Q的运行时类型不是 Integer 而失败了。
如果参数类型不匹配,DirectCast 会引发 InvalidCastException 错误。
相关文章推荐
- DirectCast Vs. CType(类型转换)
- 关于vb.net的 CType/DirectCast/TryCast和C#中的as/()
- 请问 CType和DirectCast函数有何区别
- CType, DirectCast, TryCast语句
- .vb.net中三种转换[CType/DirectCast/TryCast]
- CType, DirectCast, TryCast语句
- CType, DirectCast, TryCast语句
- CType, DirectCast, TryCast语句
- jsp中forward与sendRedirect的区别
- RequestDispatcher ----- getRequestDispatcher()与sendRedirect()的区别
- getRequestDispatcher 和sendRedirect区别
- c++类型转换关键字dynamic_cast和static_cast的使用区别
- C++里的强制类型转换符reinterpret_cast、static_cast 、dynamic_cast、const_cast 区别
- SQL中的cast和convert的用法和区别
- jsp中forword和sendRedirect的区别
- reponse.sendRedirect()和request.getRequestDispatcher().forward()的区别。
- CAST 和 CONVERT的用法和区别
- getRequestDispatcher()与sendRedirect()的区别
- response.sendRedirect()与request.getRequestDispatcher().forward()区别
- php导出数据中纯数字的处理is_numeric与ctype_digit的区别