tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 型の比較
投稿日: 2007/05/17(Thu) 16:26
投稿者魔界の仮面弁士
> オブジェクトが あるクラスのインスタンスであるかどうか調べるにはどうすればよいのでしょ
> うか?

継承関係にあるクラスの判断をどうするか、にもよりますが、方法としては、
「互いの Type インスンタンスを比較する」か「TypeOf X Is 型」を使うなど。

------------
Module Module1

  Sub Main()
    Dim X As Class1 = New Class3()

    Dim S As String = "実験結果"
    Const Pattern As String = vbCrLf & "{0} → {1}"

    S &= String.Format(Pattern, "TypeOf X Is Object", TypeOf X Is Object)
    S &= String.Format(Pattern, "TypeOf X Is Class1", TypeOf X Is Class1)
    S &= String.Format(Pattern, "TypeOf X Is Class2", TypeOf X Is Class2)
    S &= String.Format(Pattern, "TypeOf X Is Class3", TypeOf X Is Class3)
    S &= String.Format(Pattern, "TypeOf X Is Class4", TypeOf X Is Class4)
    S &= String.Format(Pattern, "X.GetType().Equals(GetType(Object))", X.GetType().Equals(GetType(Object)))
    S &= String.Format(Pattern, "X.GetType().Equals(GetType(Class1))", X.GetType().Equals(GetType(Class1)))
    S &= String.Format(Pattern, "X.GetType().Equals(GetType(Class2))", X.GetType().Equals(GetType(Class2)))
    S &= String.Format(Pattern, "X.GetType().Equals(GetType(Class3))", X.GetType().Equals(GetType(Class3)))
    S &= String.Format(Pattern, "X.GetType().Equals(GetType(Class4))", X.GetType().Equals(GetType(Class4)))

    MsgBox(S, MsgBoxStyle.Information)
  End Sub

End Module

Class Class1
End Class

Class Class2
  Inherits Class1
End Class

Class Class3
  Inherits Class2
End Class

Class Class4
  Inherits Class3
End Class

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。