Type.GetInterfaces メソッド

定義

派生クラスによってオーバーライドされた場合、現在の Type で実装または継承されているすべてのインターフェイスを取得します。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()

戻り値

Type[]

現在の Type で実装または継承されているすべてのインターフェイスを表す Typeオブジェクトの配列。An array of Type objects representing all the interfaces implemented or inherited by the current Type.

- または --or- 現在の Type で実装または継承されているインターフェイスが存在しない場合は、Type 型の空の配列。An empty array of type Type, if no interfaces are implemented or inherited by the current Type.

実装

例外

静的初期化子が呼び出され、例外をスローします。A static initializer is invoked and throws an exception.

次の例では、指定したクラスの型を取得し、その型によって実装または継承されるすべてのインターフェイスを表示します。The following example gets the type of the specified class and displays all the interfaces that the type implements or inherits. Visual Basic の例をコンパイルするには、次のコンパイラコマンドを使用します。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

注釈

GetInterfacesメソッドは、アルファベットまたは宣言の順序など、特定の順序でインターフェイスを返しません。The GetInterfaces method does not return interfaces in a particular order, such as alphabetical or declaration order. この順序は変化するため、コードはインターフェイスが返される順序に依存しないようにする必要があります。Your code must not depend on the order in which interfaces are returned, because that order varies.

現在Typeのが構築ジェネリック型を表している場合、このTypeメソッドは、適切な型引数によって置き換えられた型パラメーターを持つオブジェクトを返します。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.

現在Typeのがジェネリック型またはジェネリックメソッドの定義の型パラメーターを表している場合、このメソッドは、インターフェイスの制約と、クラスまたはインターフェイスの制約から継承されたインターフェイスを検索します。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.

適用対象

こちらもご覧ください