Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Type.GetMethods (Método) (BindingFlags)

Cuando se invalida en una clase derivada, busca los métodos definidos para el objeto Type actual y aplica las restricciones de enlace especificadas.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

public abstract MethodInfo[] GetMethods(
	BindingFlags bindingAttr
)

Parámetros

bindingAttr
Tipo: System.Reflection.BindingFlags
Máscara de bits formada por una o varias enumeraciones BindingFlags que especifican la forma en que se realiza la búsqueda.
O bien
Cero, para devolver null.

Valor devuelto

Tipo: System.Reflection.MethodInfo[]
Matriz de objetos MethodInfo que representa todos los métodos definidos para el objeto Type actual que coincidan con las restricciones de enlace especificadas.
O bien
Matriz vacía de tipo MethodInfo si no se han definido métodos para el objeto Type actual o si ninguno de los métodos definidos coincide con las restricciones de enlace.

Implementaciones

_Type.GetMethods(BindingFlags)
IReflect.GetMethods(BindingFlags)

El método GetMethods no devuelve métodos en un orden específico, como el orden alfabético o de declaración. El código no debe depender del orden de devolución de los métodos, porque ese orden varía.

Las siguientes marcas de filtro BindingFlags pueden utilizarse para definir los métodos que van a incluirse en la búsqueda:

  • Especifique BindingFlags.Instance o BindingFlags.Static para obtener un valor devuelto.

  • Especifique BindingFlags.Public para incluir métodos públicos en la búsqueda.

  • Especifique BindingFlags.NonPublic para incluir los métodos no públicos (es decir, métodos privados, internos y protegidos) en la búsqueda. Solo se devuelven los métodos internos y protegidos de las clases base; los métodos privados de las clases base no se devuelven.

  • Especifique BindingFlags.FlattenHierarchy para incluir los miembros estáticos public y protected en la jerarquía; no se incluyen los miembros estáticos private de las clases heredadas.

Las siguientes marcas de modificación BindingFlags pueden utilizarse para cambiar la forma en que se lleva a cabo la búsqueda:

  • BindingFlags.DeclaredOnly para buscar solo los métodos declarados en Type, no los métodos simplemente heredados.

Para obtener más información, vea System.Reflection.BindingFlags.

NotaNota

No se pueden omitir parámetros cuando se consultan constructores y métodos. Solo se pueden omitir parámetros al realizar llamadas.

Si el objeto T:System.Type actual representa un tipo genérico construido, este método devuelve los objetos MethodInfo con los parámetros de tipo sustituidos por los argumentos de tipo adecuados.

Si el objeto Type actual representa un parámetro de tipo en la definición de un tipo genérico o de un método genérico, este método busca los métodos de la restricción de clase o los de Object si dicha restricción de clase no existe.

En el ejemplo siguiente se crea una clase con dos métodos públicos y uno protegido, se crea un objeto Type que corresponde a MyTypeClass, se obtienen todos los métodos públicos y no públicos y se muestran sus nombres.



using System;
using System.Reflection;
using System.Reflection.Emit;

		// Create a class having two public methods and one protected method.
public class MyTypeClass
{
    public void MyMethods()
    {
    }
    public int MyMethods1() 
    {
        return 3;
    }
    protected String MyMethods2()
    {
        return "hello";
    }
}
public class TypeMain
{
    public static void Main() 
    {
        Type myType =(typeof(MyTypeClass));
        // Get the public methods.
        MethodInfo[] myArrayMethodInfo = myType.GetMethods(BindingFlags.Public|BindingFlags.Instance|BindingFlags.DeclaredOnly);
        Console.WriteLine("\nThe number of public methods is {0}.", myArrayMethodInfo.Length);
        // Display all the methods.
        DisplayMethodInfo(myArrayMethodInfo);
        // Get the nonpublic methods.
        MethodInfo[] myArrayMethodInfo1 = myType.GetMethods(BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.DeclaredOnly);
        Console.WriteLine("\nThe number of protected methods is {0}.", myArrayMethodInfo1.Length);
        // Display information for all methods.
        DisplayMethodInfo(myArrayMethodInfo1);		
    }
    public static void DisplayMethodInfo(MethodInfo[] myArrayMethodInfo)
    {
        // Display information for all methods.
        for(int i=0;i<myArrayMethodInfo.Length;i++)
        {
            MethodInfo myMethodInfo = (MethodInfo)myArrayMethodInfo[i];
            Console.WriteLine("\nThe name of the method is {0}.", myMethodInfo.Name);
        }
    }
}


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft