クラスのチェック
- 車輪の再発明 (東方算程譚)
「そこで質問」に反応。
本質的な回答ではないけど、 If 文のタイプ数を減らす目的であれば、拡張メソッドを使う方法がありますね。
<Extension()> _ Public Function IsClassOf(ByRef type1 As Type, ByVal type2 As Type) As Boolean If IsNothing(type1) OrElse IsNothing(type2) Then IsClassOf = False Exit Function End If IsClassOf = type1.Equals(type2) OrElse type1.IsSubclassOf(type2) End Function
使い方。
If hoge.IsClassOf(GetType(Foo)) Then
……なんとなく、昔 Java を使い始めた頃に、 System.out.println() を毎回書くのが面倒で、
System.out o = new System.out(); o.println(...);
とかやっていた事を思い出しました。。。