読者です 読者をやめる 読者になる 読者になる

雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

クラスのチェック

VB(.NET)

「そこで質問」に反応。
本質的な回答ではないけど、 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(...);

とかやっていた事を思い出しました。。。