Leggi in inglese

Condividi tramite


Type.IsInstanceOfType(Object) Metodo

Definizione

Determina se l'oggetto specificato è un'istanza dell'oggetto Type corrente.

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

Parametri

o
Object

Oggetto da confrontare con il tipo corrente.

Restituisce

true se l'oggetto Type corrente è incluso nella gerarchia di ereditarietà dell'oggetto rappresentato da o oppure se l'oggetto Type corrente è un'interfaccia implementata da o. false se non viene soddisfatta nessuna di queste condizioni, se o è null oppure se l'oggetto Type corrente è un tipo generico aperto, ovvero la proprietà ContainsGenericParameters restituisce true.

Implementazioni

Esempio

Nell'esempio seguente viene illustrato l'uso del metodo 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.

Commenti

Questo metodo può essere sottoposto a override da una classe derivata.

Nota

Un tipo costruito non è un'istanza della relativa definizione di tipo generico. Ovvero, MyGenericList<int> (MyGenericList(Of Integer) in Visual Basic) non è un'istanza di MyGenericList<T> (MyGenericList(Of T) in Visual Basic).

Si applica a

Prodotto Versioni
.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