タイトル | : Re: 型の比較 |
記事No | : 5516 |
投稿日 | : 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
|