2016-04-03 1 views
1

Was ist die richtige Art zu prüfen, ob der Typparameter vom Typ X ist (oder davon abgeleitet ist)? Z.B.Prüfen, ob der generische Parametertyp von irgendeiner Klasse abgeleitet ist X

Function MyFunc(Of T As BaseClass)() As T 
    If TypeOf T Is GetType(ChildClass1) Then 
    'Do something specific to ChildClass1 
    End If 

    'Do things common to all BaseClass objects 
End Function 

Der obige Code nicht kompiliert, mit oder ohne TypeOf.

+0

Versuchen 'Wenn GetType (T) Ist GetType (ChildClass1) Then' –

+0

@ZoharPeled: Offenbar etwas so geradlinig ich verpasst. Danke für die Eingabe. Ich akzeptiere das als Antwort, wenn du es postest. – dotNET

Antwort

2

Ersetzen Sie TypeOf T durch GetType(T).
Ihr Code sollte wie folgt aussehen:

Function MyFunc(Of T As BaseClass)() As T 
    If GetType(T) Is GetType(ChildClass1) Then 
    'Do something specific to ChildClass1 
    End If 

    'Do things common to all BaseClass objects 
End Function 
Verwandte Themen