Type.GetInterfaces Methode

Definition

Ruft beim Überschreiben in einer abgeleiteten Klasse sämtliche Schnittstellen ab, die vom aktuellen Type implementiert oder geerbt wurden.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()

Gibt zurück

Type[]

Ein Array von Type-Objekten, die sämtliche vom aktuellen Type implementierten oder geerbten Schnittstellen darstellen.An array of Type objects representing all the interfaces implemented or inherited by the current Type.

- oder --or- Ein leeres Array vom Type-Typ, wenn der aktuelle Type keine Schnittstellen implementiert oder geerbt hat.An empty array of type Type, if no interfaces are implemented or inherited by the current Type.

Implementiert

Ausnahmen

Ein statischer Initialisierer wird aufgerufen und löst eine Ausnahme aus.A static initializer is invoked and throws an exception.

Beispiele

Im folgenden Beispiel wird der Typ der angegebenen Klasse abgerufen, und es werden alle Schnittstellen angezeigt, die vom Typ implementiert oder geerbt werden.The following example gets the type of the specified class and displays all the interfaces that the type implements or inherits. Um das Visual Basic Beispiel zu kompilieren, verwenden Sie die folgenden Compilerbefehle: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

Hinweise

Die GetInterfaces -Methode gibt keine Schnittstellen in einer bestimmten Reihenfolge zurück, z. b. alphabetisch oder Deklaration.The GetInterfaces method does not return interfaces in a particular order, such as alphabetical or declaration order. Der Code darf nicht von der Reihenfolge abhängen, in der Schnittstellen zurückgegeben werden, da diese Reihenfolge variiert.Your code must not depend on the order in which interfaces are returned, because that order varies.

Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Type Methode die Objekte mit den Typparametern zurück, die durch die entsprechenden Typargumente ersetzt werden.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.

Wenn der aktuelle Type einen Typparameter in der Definition eines generischen Typs oder einer generischen Methode darstellt, durchsucht diese Methode die Schnittstellen Einschränkungen und alle Schnittstellen, die von Klassen-oder Schnittstellen Einschränkungen geerbt werden.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.

Gilt für:

Siehe auch