tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル型の比較
記事No5513
投稿日: 2007/05/17(Thu) 15:56
投稿者mar
お世話になります。
オブジェクトが あるクラスのインスタンスであるかどうか調べるにはどうすればよいのでしょ
うか?
宜しくお願いします。

[ツリー表示へ]
タイトルRe: 型の比較
記事No5514
投稿日: 2007/05/17(Thu) 16:00
投稿者よねKEN
> オブジェクトが あるクラスのインスタンスであるかどうか調べるにはどうすればよいのでしょ
> うか?

Dim o As Object
o = "あいう"
If TypeOf o Is String Then
    Debug.WriteLine("String型だよ")
End If

TypeOfとIsをヘルプで調べてください。

[ツリー表示へ]
タイトルRe^2: 型の比較
記事No5515
投稿日: 2007/05/17(Thu) 16:26
投稿者mar
よねKENさん ありがとうございます。
うまく行きました。

[ツリー表示へ]
タイトルRe: 型の比較
記事No5516
投稿日: 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

[ツリー表示へ]