Leer en inglés

Compartir a través de


Type.IsInstanceOfType(Object) Método

Definición

Determina si el objeto especificado es una instancia del objeto Type actual.

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

Parámetros

o
Object

Objeto que se va a comparar con el tipo actual.

Devoluciones

Es true si el objeto Type actual se encuentra en la jerarquía de herencia del objeto representado por o, o si el objeto Type actual es una interfaz que implementa o. false si no se cumple ninguna de estas condiciones, o si o es null, o si el objeto Type actual es un tipo genérico abierto (es decir, la propiedad ContainsGenericParameters devuelve true).

Implementaciones

Ejemplos

En el siguiente ejemplo se muestra el uso del método 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.

Comentarios

Este método se puede invalidar mediante una clase derivada.

Nota

Un tipo construido no es una instancia de su definición de tipo genérico. Es decir, MyGenericList<int> (MyGenericList(Of Integer) en Visual Basic) no es una instancia de MyGenericList<T> (MyGenericList(Of T) en Visual Basic).

Se aplica a

Producto Versiones
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.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