Type.GetInterfaces Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
W przypadku przesłonięć w klasie pochodnej program pobiera wszystkie interfejsy implementowane lub dziedziczone przez bieżącą klasę Type .
public:
abstract cli::array <Type ^> ^ GetInterfaces();
public abstract Type[] GetInterfaces ();
abstract member GetInterfaces : unit -> Type[]
Public MustOverride Function GetInterfaces () As Type()
Zwraca
- Type[]
Tablica obiektów Type reprezentujących wszystkie interfejsy zaimplementowane lub odziedziczone przez bieżący obiekt Type .
-lub- Pusta tablica typu , jeśli bieżący element nie implementuje ani nie Type dziedziczy żadnych Type interfejsów.
Implementuje
Wyjątki
Wywoływany jest statyczny inicjator, który zgłasza wyjątek.
Przykłady
Poniższy przykład pobiera typ określonej klasy i wyświetla wszystkie interfejsy, które typ implementuje lub dziedziczy. Aby skompilować Visual Basic przykładzie, użyj następujących poleceń kompilatora:
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
Uwagi
Metoda GetInterfaces nie zwraca interfejsów w określonej kolejności, takich jak kolejność alfabetyczna lub kolejność deklaracji. Kod nie może zależeć od kolejności zwracania interfejsów, ponieważ kolejność ta jest różna.
Jeśli bieżący reprezentuje skonstruowany typ ogólny, ta metoda zwraca obiekty z parametrami typu zastąpionymi odpowiednimi Type Type argumentami typu.
Jeśli bieżąca reprezentuje parametr typu w definicji typu ogólnego lub metody ogólnej, ta metoda przeszukuje ograniczenia interfejsu i wszelkie interfejsy odziedziczone po ograniczeniach Type klasy lub interfejsu.