• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 188
  • Last Modified:

Smart inheritence and typecasting

Hi,

Assume the code below, in the someSeperateMethod is there a more intelligent way of typecasting to the derived classes without all the if's - someway to automatically typecast using something to do with Enum?

Thanks,
Uni
Public MustInherit Class myBaseClass
    Enum ENUMTYPES
        Type1
        Type2
    End Enum
    Public MustOverride Function getClassType() as ENUMTYPES
End Class
 
Public Class CType1
    Public Overrides Function getClassType() as ENUMTYPES
        getClassType=Type1
    End Function
End Class
 
Public Class CType2
    Public Overrides Function getClassType() as ENUMTYPES
        getClassType=Type2
    End Function
End Class
 
Public Sub someSeperateMethod()
    'Some list of CType1's and CType2's.
    if(myList.Item(1).getClassType()==Type1)then
        'Typecast to CType1
    else
        'Typecast to CType2
    end if
End Sub

Open in new window

0
Unimatrix_001
Asked:
Unimatrix_001
2 Solutions
 
CodeCruiserCommented:
I can not think of any way other than if statements (may be because i am sleepy!). But one thing could be suggested. instead of

getClassType=Type1

use

return Type1
0
 
Bob LearnedCommented:
It sounds like you need to use a base class with common code, or an interface that defines the contract that each sub-class should implement.
0
 
Unimatrix_001Author Commented:
Thank you. :)
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now