Type.GetInterfaces Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cuando se invalida en una clase derivada, obtiene todas las interfaces implementadas o heredadas por el objeto Type actual.
public:
abstract cli::array <Type ^> ^ GetInterfaces();
public abstract Type[] GetInterfaces ();
abstract member GetInterfaces : unit -> Type[]
Public MustOverride Function GetInterfaces () As Type()
Devoluciones
- Type[]
Matriz de objetos Type que representa todas las interfaces implementadas o heredadas por el objeto Typeactual.
O bien Matriz vacía de tipo Type en caso de que el objeto Type actual no implemente ni herede ninguna interfaz.
Implementaciones
Excepciones
Se invoca un inicializador estático y produce una excepción.
Ejemplos
En el ejemplo siguiente se obtiene el tipo de la clase especificada y se muestran todas las interfaces que el tipo implementa o hereda. Para compilar el Visual Basic ejemplo, use los siguientes comandos del compilador:
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
Comentarios
El GetInterfaces método no devuelve interfaces en un orden determinado, como el orden alfabético o de declaración. El código no debe depender del orden en el que se devuelven las interfaces, porque ese orden varía.
Si el objeto actual representa un tipo genérico construido, este método devuelve los objetos con los parámetros de tipo Type Type reemplazados por los argumentos de tipo adecuados.
Si el objeto actual representa un parámetro de tipo en la definición de un tipo genérico o un método genérico, este método busca las restricciones de interfaz y las interfaces heredadas de restricciones de clase Type o interfaz.