次の方法で共有


Type.IsInstanceOfType メソッド

指定したオブジェクトが現在の Type のインスタンスかどうかを判断します。

Public Overridable Function IsInstanceOfType( _
   ByVal o As Object _) As Boolean
[C#]
public virtual bool IsInstanceOfType(objecto);
[C++]
public: virtual bool IsInstanceOfType(Object* o);
[JScript]
public function IsInstanceOfType(
   o : Object) : Boolean;

パラメータ

  • o
    現在の Type と比較するオブジェクト。

戻り値

現在の Type が o パラメータによって表されるオブジェクトの継承階層にある場合、または現在の Type が o によってサポートされるインターフェイスである場合は true 。これらの条件のいずれも該当しない場合、または o が null 参照 (Visual Basic では Nothing) である場合は false

解説

このメソッドは、派生クラスでオーバーライドできます。

使用例

[Visual Basic, C#, C++] IsInstanceOfType メソッドの使用例を次に示します。

 
Imports System
Public Interface IMyIfc
End Interface 'IMyIfc
Public Class [MyClass]
    Implements IMyIfc
End Class '[MyClass]
Public Class MyDerivedClass
    Inherits [MyClass]
End Class 'MyDerivedClass
Class IsInstanceTest
    Public Shared Sub Main()
        Dim imyifcType As Type = GetType(IMyIfc)
        Dim mc As New [MyClass]()
        Dim mcType As Type = mc.GetType()
        Dim mdc = New MyDerivedClass()
        Dim mdcType As Type = mdc.GetType()
        Dim array(10) As Integer
        Dim arrayType As Type = GetType(Array)
        Console.WriteLine("Is int[] an instance of the Array class? {0}.", arrayType.IsInstanceOfType(array))
        Console.WriteLine("Is myclass an instance of MyClass? {0}.", mcType.IsInstanceOfType(mc))
        Console.WriteLine("Is myderivedclass an instance of MyClass? {0}.", mcType.IsInstanceOfType(mdc))
        Console.WriteLine("Is myclass an instance of IMyIfc? {0}.", imyifcType.IsInstanceOfType(mc))
        Console.WriteLine("Is myderivedclass an instance of IMyIfc? {0}.", imyifcType.IsInstanceOfType(mdc))
    End Sub 'Main
End Class 'IsInstanceTest

[C#] 
using System;
public interface IMyIfc {}
public class MyClass : IMyIfc {}
public class MyDerivedClass : MyClass {}
class IsInstanceTest 
{
    public static void Main() 
    {
        Type imyifcType=typeof(IMyIfc);
        MyClass mc = new MyClass();
        Type mcType = mc.GetType();
        MyClass mdc = new MyDerivedClass();
        Type mdcType = mdc.GetType();
        int [] array  = new int [10];
        Type arrayType = typeof(Array);
        Console.WriteLine("Is int[] an instance of the Array class? {0}.", arrayType.IsInstanceOfType(array));
        Console.WriteLine("Is myclass an instance of MyClass? {0}.", mcType.IsInstanceOfType(mc));
        Console.WriteLine("Is myderivedclass an instance of MyClass? {0}.", mcType.IsInstanceOfType(mdc));
        Console.WriteLine("Is myclass an instance of IMyIfc? {0}.", imyifcType.IsInstanceOfType(mc));
        Console.WriteLine("Is myderivedclass an instance of IMyIfc? {0}.", imyifcType.IsInstanceOfType(mdc));
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;
public __gc __interface IMyIfc {};
public __gc class MyClass : public IMyIfc {};
public __gc class MyDerivedClass : public MyClass {};

int main() {
   Type* imyifcType=__typeof(IMyIfc);
   MyClass* mc = new MyClass();
   Type*  mcType = mc->GetType();
   MyClass* mdc = new MyDerivedClass();
   Type*  mdcType = mdc->GetType();
   Int32 array[] = new Int32[10];
   Type*  arrayType = __typeof(Array);
   Console::WriteLine(S"Is Int32[] an instance of the Array class? {0}.", __box(arrayType->IsInstanceOfType(array)));
   Console::WriteLine(S"Is myclass an instance of MyClass? {0}.", __box(mcType->IsInstanceOfType(mc)));
   Console::WriteLine(S"Is myderivedclass an instance of MyClass? {0}.", __box(mcType->IsInstanceOfType(mdc)));
   Console::WriteLine(S"Is myclass an instance of IMyIfc? {0}.", __box(imyifcType->IsInstanceOfType(mc)));
   Console::WriteLine(S"Is myderivedclass an instance of IMyIfc? {0}.", __box(imyifcType->IsInstanceOfType(mdc)));
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

Type クラス | Type メンバ | System 名前空間