请问 CType和DirectCast函数有何区别
生活随笔
收集整理的這篇文章主要介紹了
请问 CType和DirectCast函数有何区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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 的運行時類型為 Double。CType 因為 Double 可以轉換成 Integer 而成功了,DirectCast 則因為 Q 的運行時類型不是 Integer 而失敗了。
如果參數類型不匹配,DirectCast 會引發 InvalidCastException 錯誤。
轉載于:https://www.cnblogs.com/aspnet-sqlserver/archive/2008/03/12/1102083.html
總結
以上是生活随笔為你收集整理的请问 CType和DirectCast函数有何区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server的镜像是基于物理块变
- 下一篇: Java调用OpenDDS(1)-编译安