CType 和类型特定类型转换(CInt、CBool​​、CStr)之间的区别?

jmo*_*eno 2 vb.net

CInt 会以“1.2”成功,而 Integer.Parse 会失败,是否有一些 CType 会成功的值,而 CInt、CDec 或 CStr 会失败?什么时候应该使用 CType?

jmo*_*eno 5

使用 CType 和使用 CXXXX 之间没有区别,实际上它们编译为相同的 IL,例如调用 Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger for CInt 或 CType(,Integer) 到 Microsoft.VisualBasic.CompilerServices.Conversions .ToDecimal 用于 CDec 或 Ctype(, Decimal)。

CType 不仅可以用于原始类型,还可以用于泛型,但除此之外,没有具体的理由偏爱一种语法而不是另一种。它们将编译为相同的 IL,因此在相同的时间内产生相同的结果。