Type.GetInterfaces Type.GetInterfaces Type.GetInterfaces Type.GetInterfaces Method

Definizione

Quando ne viene eseguito l'override in una classe derivata, ottiene tutte le interfacce implementate o ereditate dall'oggetto Type corrente.When overridden in a derived class, gets all the interfaces implemented or inherited by the current Type.

public:
 abstract cli::array <Type ^> ^ GetInterfaces();
public abstract Type[] GetInterfaces ();
abstract member GetInterfaces : unit -> Type[]
Public MustOverride Function GetInterfaces () As Type()

Restituisce

Type[]

Matrice di oggetti Type che rappresentano tutte le interfacce implementate o ereditate dall'oggetto Typecorrente.An array of Type objects representing all the interfaces implemented or inherited by the current Type.

-oppure--or- Matrice vuota di tipo Type, se non vengono implementate o ereditate interfacce dall'oggetto Type corrente.An empty array of type Type, if no interfaces are implemented or inherited by the current Type.

Implementazioni

Eccezioni

Un inizializzatore statico viene richiamato e genera un'eccezione.A static initializer is invoked and throws an exception.

Esempi

Nell'esempio seguente viene ottenuto il tipo della classe specificata e vengono visualizzate tutte le interfacce implementate o ereditate dal tipo.The following example gets the type of the specified class and displays all the interfaces that the type implements or inherits. Per compilare l'esempio di Visual Basic, usare i comandi seguenti del compilatore:To compile the Visual Basic example, use the following compiler commands:

vbc type_getinterfaces1.vb /r:System.Web.dll /r:System.dll

using namespace System;
using namespace System::Collections::Generic;

void main()
{
    Console::WriteLine("\r\nInterfaces implemented by Dictionary<int, String^>:\r\n");
     
    for each (Type^ tinterface in Dictionary<int, String^>::typeid->GetInterfaces())
    {
        Console::WriteLine(tinterface->ToString());
    }

    //Console::ReadLine()      // Uncomment this line for Visual Studio. 
}

/* This example produces output similar to the following:

Interfaces implemented by Dictionary<int, String^>:

System.Collections.Generic.IDictionary`2[System.Int32,System.String]
System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
System.Collection.IEnumerable
System.Collection.IDictionary
System.Collection.ICollection
System.Runtime.Serialization.ISerializable
System.Runtime.Serialization.IDeserializationCallback
 */
using System;
using System.Collections.Generic;

public class Example
{
    static void Main()
    {
        Console.WriteLine("\r\nInterfaces implemented by Dictionary<int, string>:\r\n");
        
        foreach (Type tinterface in typeof(Dictionary<int, string>).GetInterfaces())
        {
            Console.WriteLine(tinterface.ToString());
        }

        //Console.ReadLine()      // Uncomment this line for Visual Studio. 
    }
}

/* This example produces output similar to the following:

Interfaces implemented by Dictionary<int, string>:

System.Collections.Generic.IDictionary`2[System.Int32,System.String]
System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
System.Collection.IEnumerable
System.Collection.IDictionary
System.Collection.ICollection
System.Runtime.Serialization.ISerializable
System.Runtime.Serialization.IDeserializationCallback
 */
Imports System.Collections.Generic

Public Class Example

    Shared Sub Main()

        Console.WriteLine(vbCrLf & _
            "Interfaces implemented by Dictionary(Of Integer, String):" & vbCrLf)
        
        For Each tinterface As Type In GetType(Dictionary(Of Integer, String)).GetInterfaces()

            Console.WriteLine(tinterface.ToString())

        Next

        'Console.ReadLine()      ' Uncomment this line for Visual Studio. 
    End Sub
End Class

' This example produces output similar to the following:
'
'Interfaces implemented by Dictionary(Of Integer, String):
'System.Collections.Generic.IDictionary`2[System.Int32,System.String]
'System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
'System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.String]]
'System.Collection.IEnumerable
'System.Collection.IDictionary
'System.Collection.ICollection
'System.Runtime.Serialization.ISerializable
'System.Runtime.Serialization.IDeserializationCallback

Commenti

Il GetInterfaces metodo non restituisce le interfacce in un ordine particolare, ad esempio l'ordine alfabetico o di dichiarazione.The GetInterfaces method does not return interfaces in a particular order, such as alphabetical or declaration order. Il codice non deve dipendere dall'ordine in cui vengono restituite le interfacce, perché questo ordine varia.Your code must not depend on the order in which interfaces are returned, because that order varies.

Se l'oggetto Type corrente rappresenta un tipo generico costruito, questo metodo restituisce Type gli oggetti con i parametri di tipo sostituiti dagli argomenti di tipo appropriati.If the current Type represents a constructed generic type, this method returns the Type objects with the type parameters replaced by the appropriate type arguments.

Se l'oggetto Type corrente rappresenta un parametro di tipo nella definizione di un tipo o di un metodo generico, questo metodo esegue la ricerca nei vincoli di interfaccia e in tutte le interfacce ereditate dai vincoli di classe o di interfaccia.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the interface constraints and any interfaces inherited from class or interface constraints.

Si applica a

Vedi anche