转换与 CType

Posted

技术标签:

【中文标题】转换与 CType【英文标题】:Convert vs. CType 【发布时间】:2011-07-29 12:07:56 【问题描述】:

我对存在两个看似相同的 VB.NET 函数感到有些困惑:CType(args)Convert.ToType(args)。一般来说,我对 .NET 和 VB 还很陌生,所以我不太确定它们中的一个是 VB6 的遗留物还是它们实际上有不同的目的/用途/限制。其中之一是更新/更安全的吗?是否有理由使用其中一个而不使用另一个?

干杯! = )

【问题讨论】:

请不要把编程语言放在问题标题中...这就是标签的用途 不会再这样做了。我见过其他人这样做,认为这可能是一个好主意。感谢您的反馈。 【参考方案1】:

CType 来自 VB6 时代,在效率方面并不是最好的。您应该可以使用Convert.ToXxxx() 方法进行转换,使用TryCast()DirectCast() 进行转换,而不是使用CType()

【讨论】:

不正确。 CType 从未出现在 VB6 中。我认为您将此与CIntCDbl 等混淆了。【参考方案2】:

见this page on MSDN。 (转换函数、CType、DirectCast 和 System.Convert 部分)。

该部分的结论如下:

建议:对于大多数转换,使用内在语言 简洁明了的转换关键字(包括 CType) 在类型之间转换时允许编译器优化。采用 DirectCast 用于将 Object 转换为 String 并用于提取值 当嵌入类型已知时,类型被装箱在 Object 变量中(即 是,强制是不必要的)。

【讨论】:

以上是关于转换与 CType的主要内容,如果未能解决你的问题,请参考以下文章

<ctype.h>头文件详解(~ 勤看~)

VB中如何将object类型转换为其他类型?

toupper字符串转换函数应用实例

tolower字符串转换函数应用实例

VB.NET 中 DirectCast() 和 CType() 的区别

ctype.h字符函数和字符串