我是一个刚进入VB.NET的有经验的C/C++/C#程序员,我通常使用CType (和CInt,CBool,CStr)进行造型,因为它的字符更少,是我接触到的第一种造型方式,但我也知道DirectCast和TryCast。
简单地说,有什么不同(演员的效果,表演,等等)在DirectCast和CType之间?我理解TryCast的概念。
发布于 2011-07-05 22:50:58
使用CType
,您可以编写类似Ctype("string",Integer)
的代码。但是对于DirectCast
,上面的语句会给出一个编译时错误。
Dim a As Integer = DirectCast("1", Integer) 'Gives compiler error
Dim b As Integer = CType("1", Integer) 'Will compile
发布于 2016-09-11 14:22:35
DirectCast
比CType
有更多的限制。
例如,这将抛出一个错误:
Sub Main()
Dim newint As Integer = DirectCast(3345.34, Integer)
Console.WriteLine(newint)
Console.ReadLine()
End Sub
它还将显示在Visual Studio IDE中。
但是,这不会抛出错误:
Sub Main()
Dim newint As Integer = CType(3345.34, Integer)
Console.WriteLine(newint)
Console.ReadLine()
End Sub
https://stackoverflow.com/questions/3056514
复制相似问题