英語で読む

次の方法で共有


Type.IsInstanceOfType(Object) メソッド

定義

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

C#
public virtual bool IsInstanceOfType(object? o);
C#
public virtual bool IsInstanceOfType(object o);

パラメーター

o
Object

現在の型と比較するオブジェクト。

戻り値

true が返されるのは、現在の Typeo によって表されるオブジェクトの継承可能な階層内にある場合、または現在の Typeo によって実装されているインターフェイスである場合です。 false が返されるのは、これらの条件のいずれも満たされない場合、または onull であるか、現在の Type がオープン ジェネリック型である (つまり、ContainsGenericParameterstrue を返す) 場合です。

実装

IsInstanceOfType メソッドの使用例を次に示します。

C#
using System;

public interface IExample {}

public class BaseClass : IExample {}

public class DerivedClass : BaseClass {}

public class Example
{
    public static void Main()
    {
        var interfaceType = typeof(IExample);
        var base1 = new BaseClass();
        var base1Type = base1.GetType();
        var derived1 = new DerivedClass();
        var derived1Type = derived1.GetType();
        int[] arr = new int[11];

        Console.WriteLine("Is int[] an instance of the Array class? {0}.",
                           typeof(Array).IsInstanceOfType(arr));
        Console.WriteLine("Is base1 an instance of BaseClass? {0}.",
                          base1Type.IsInstanceOfType(base1));
        Console.WriteLine("Is derived1 an instance of BaseClass? {0}.",
                          base1Type.IsInstanceOfType(derived1));
        Console.WriteLine("Is base1 an instance of IExample? {0}.",
                          interfaceType.IsInstanceOfType(base1));
        Console.WriteLine("Is derived1 an instance of IExample? {0}.",
                          interfaceType.IsInstanceOfType(derived1));
    }
}
// The example displays the following output:
//    Is int[] an instance of the Array class? True.
//    Is base1 an instance of BaseClass? True.
//    Is derived1 an instance of BaseClass? True.
//    Is base1 an instance of IExample? True.
//    Is derived1 an instance of IExample? True.

注釈

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

注意

構築された型は、そのジェネリック型定義のインスタンスではありません。 つまり、 MyGenericList<int> (MyGenericList(Of Integer) Visual Basic の場合) は のインスタンス MyGenericList<T> ではありません (MyGenericList(Of T) Visual Basic の場合)。

適用対象

製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1