【发布时间】:2015-01-01 22:14:45
【问题描述】:
我已经声明了一个基类(使用 CSLA.NET)
Public Class EditableBase(Of T As EditableBase(Of T))
Inherits BusinessBase(Of T)
End Class
我有我的 Company 类,它继承自这个基类并声明为这样
<Serializable()> _
Public Class Company
Inherits EditableBase(Of Company)
End Class
现在在我的代码中,我需要检查类型是否为 Company 类型,我可以这样做
If GetType(T) Is GetType(Company) Then
但是我怎样才能将对象转换为这种类型呢?我试过了
Dim lObject As Company = DirectCast(Me, Company)
但这似乎与消息错误
“T”类型的值无法转换为 Company 类型
【问题讨论】:
-
有
Is操作符来检查是否是某种类型的对象。此外,存在CType(...)而不是DirectCast。 -
@Agat
CType(Me, Company)在这种情况下无法像DirectCast那样编译。