Type.GetInterfaces Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
При переопределении в производном классе возвращает все интерфейсы, реализуемые или наследуемые текущим объектом 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.
-или- Пустой массив типа 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 объекты с параметрами типа, замененными соответствующими аргументами типа.
Если Current Type представляет параметр типа в определении универсального типа или универсального метода, этот метод ищет ограничения интерфейса и все интерфейсы, унаследованные от ограничений класса или интерфейса.