请问 CType和DirectCast函数有何区别
DirectCast 關(guān)鍵字引入類型轉(zhuǎn)換操作。該關(guān)鍵字的使用方法與 CType 關(guān)鍵字相同,如下列所示:
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.這兩個關(guān)鍵字都將要轉(zhuǎn)換的表達(dá)式作為第一個參數(shù),而將要轉(zhuǎn)換成的類型作為第二個參數(shù)。如果未定義表達(dá)式的數(shù)據(jù)類型與第二個參數(shù)所指定的數(shù)據(jù)類型之間的轉(zhuǎn)換,那么這兩種轉(zhuǎn)換都會失敗。
這兩個關(guān)鍵字之間的差別在于:只要定義了表達(dá)式與類型之間的有效轉(zhuǎn)換,CType 即可成功,而 DirectCast 則要求對象變量的運行時類型與指定的類型相同。不過,如果表達(dá)式的指定類型和運行時類型相同,則 DirectCast 的運行時性能比 CType 的運行時性能好。
在上例中,Q 的運行時類型為 Double。CType 因為 Double 可以轉(zhuǎn)換成 Integer 而成功了,DirectCast 則因為 Q 的運行時類型不是 Integer 而失敗了。
如果參數(shù)類型不匹配,DirectCast 會引發(fā) InvalidCastException 錯誤。
轉(zhuǎn)載于:https://www.cnblogs.com/aspnet-sqlserver/archive/2008/03/12/1102083.html
總結(jié)
以上是生活随笔為你收集整理的请问 CType和DirectCast函数有何区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server的镜像是基于物理块变
- 下一篇: Java调用OpenDDS(1)-编译安