VB6演员表达

时间:2008-11-20 21:39:08

标签: vb6 casting

在Visual Basic 6中,VB.NET的CType的转换表达式是什么?

6 个答案:

答案 0 :(得分:18)

答案 1 :(得分:17)

根据您投射的类型,有很多种

cint() Cast to integer
cstr() cast to string
clng() cast to long
cdbl() cast to double
cdate() cast to date

它也有隐式转换,所以你可以这样做myString = myInt

答案 2 :(得分:4)

假设您有一个ChildClass(child)对象要转换为BaseClass。你这样做:

Dim base As BaseClass
Set base = child

由于VB6处理编译时类型安全的方式,你可以在没有任何额外语法的情况下这样做。

注意:鉴于其他人似乎都提到了CType,我可能完全误解了这个问题,如果是这样的话我会道歉!

答案 3 :(得分:2)

已经提到的强制转换是正确的,但如果类型是对象,那么你必须在VB6中使用“Set”,例如:

If IsObject(Value) Then
    Set myObject = Value ' VB6 does not have CType(Value, MyObjectType)
Else
    myObject = Value     ' VB6 does not have CType(Value, MyObjectType)
End If

当然,这取决于你所投的类型。几乎所有用户类都是对象以及Collection,Dictionary和许多其他类。内置类型,如long,integer,boolean等,显然不是对象。

答案 4 :(得分:0)

Ctype()我相信。 C *(CDate(),CStr()等)大部分都是保留。

答案 5 :(得分:0)

转化根本不是“演员”。例如,尝试:

MsgBox CLng(CBool(3&))

结果是-1,而不是3.这是因为那些是转换函数,而不是强制转换。语言很重要!