我不知道如何将类型为"object"的对象强制转换为用户定义的类类型。
我有一个私有实例变量:
Private studyType as Object
我需要做的是从一个事件处理方法实例化这个对象。不,不引用new Object()
。
基本上是这样的:
studyType = new VCEOnly()
然而,我只被允许使用Object
类的子类和函数,因为类型被定义为Object
。所以我需要将它强制转换为VCEOnly
类类型,这样我就可以访问它的子类和函数。
基本上,studyType
需要从Object
广播到VCEOnly
。声明时不允许将studyType
预先定义为VCEOnly
。
您也可以使用:
dim studyType as Object = new VCEOnly()
...
dim studyTypeVCE as VCEOnly = nothing
if trycast(studytype,VCEOnly) IsNot Nothing then
studyTypeVCE = DirectCast(studytype,VCEOnly)
'... do your thing
end if
if语句检查对象是否可以强制转换为所需类型,如果是,则类型为VCEOnly的变量将用studytype的强制转换填充。
使用CType将对象从一种类型强制转换为另一种
应该这样做:
Dim studyType as Object
Dim studyTypeVCE as New VCEOnly
studyTypeVCE = Ctype(studyType,VCEOnly)
或者你可以这样做:
With CType(studyType, VCEOnly)
.SomeVCEOnlyProperty = "SomeValue"
End With