Type.GetInterfaces 方法  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当在派生类中重写时,获取由当前 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对象数组。
实现
例外
调用静态初始值设定项时引发了异常。
示例
下面的示例获取指定类的类型,并显示该类型实现或继承的所有接口。 若要编译Visual Basic,请使用以下编译器命令:
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 )返回接口。 代码不得依赖于接口的返回顺序,因为该顺序会有所不同。
如果当前 Type 表示构造的泛型类型,则此方法返回对象 Type ,类型参数替换为相应的类型参数。
如果当前 表示泛型类型或泛型方法的定义中的类型参数,则此方法将搜索接口约束以及从类或接口约束继承 Type 的任何接口。