如果我有以下功能:
Private Function AddObject(Of T As MyBaseClass)(pos As PointF, sz As SizeF) As T
End Function
如何检查函数内T
的类型?例如,我有3个继承自MyBaseClass
的类,即Shape
,Label
和Rect
。我尝试了以下两个版本:
If T Is Rect Then
If TypeOf T Is Rect Then
但两者都会产生错误。这里的语法是什么?
答案 0 :(得分:0)
如果您只需要完全匹配,则可以使用:
GetType(T) Is GetType(Rect)
如果要与继承匹配,可以使用:
GetType(Rect).IsAssignableFrom(GetType(T))
虽然说实话,如果你必须分别处理每个子类,它不会是一种理想的通用方法。你能不在基类中添加一个抽象方法,而是在每个子类中实现它?