タイトル : 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 |