2016-04-03 7 views
1

型パラメータがある型Xにあるかどうかをチェックする適切な方法は何ですか?例えば。ジェネリックパラメータの型がいくつかのクラスから派生しているかどうかを確認する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 

上記のコードは、TypeOfの有無にかかわらずコンパイルされません。

+0

は試してみてください 'メソッドGetType(T)の場合はgettype(ChildClass1)Then' –

+0

@ZoharPeledです。入力いただきありがとうございます。あなたがそれを投稿すれば答えとしてそれを受け入れるでしょう。 – dotNET

答えて

2

TypeOf TGetType(T)に置き換えます。
あなたのコードは次のようになります。どうやら私はストレートフォワードので、何かを逃した:

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 
関連する問題