Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Type.GetMethods (BindingFlags)

 

Data di pubblicazione: ottobre 2016

Quando ne viene eseguito l'override in una classe derivata, cerca i metodi definiti per l'oggetto Type corrente, usando i vincoli di binding specificati.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public abstract MethodInfo[] GetMethods(
	BindingFlags bindingAttr
)

Parametri

bindingAttr
Type: System.Reflection.BindingFlags

Maschera di bit costituita da uno o più BindingFlags che consente di specificare le modalità di esecuzione della ricerca.

-oppure-

Zero, per restituire null.

Valore restituito

Type: System.Reflection.MethodInfo[]

Matrice di oggetti MethodInfo che rappresentano tutti i metodi definiti per l'oggetto Type corrente, corrispondente ai vincoli di binding specificati.

-oppure-

Matrice vuota di tipo MethodInfo, se non è definito alcun metodo per l'oggetto Type corrente oppure se nessuno dei metodi definiti corrisponde ai vincoli di binding.

Il GetMethods metodo non restituisce i metodi in un ordine specifico, ad esempio in ordine alfabetico o ordine di dichiarazione. Il codice non deve dipendere dall'ordine in cui vengono restituiti metodi perché tale ordine varia.

Le operazioni seguenti BindingFlags flag del filtro possono essere utilizzati per definire i metodi da includere nella ricerca:

  • È necessario specificare BindingFlags.Instance o BindingFlags.Static per ottenere un risultato.

  • Specificare BindingFlags.Public per includere i metodi pubblici nella ricerca.

  • Specificare BindingFlags.NonPublic per includere nella ricerca i metodi non pubblici (vale a dire metodi privati, interni e protetti). Solo protetti e vengono restituiti metodi interni delle classi base; metodi privati delle classi base non vengono restituiti.

  • Specificare BindingFlags.FlattenHierarchy includere public e protected membri statici nella gerarchia; private membri statici nelle classi ereditate non sono inclusi.

Le operazioni seguenti BindingFlags flag di modifica consente di modificare le modalità di ricerca:

  • BindingFlags.DeclaredOnlyPer cercare solo i metodi dichiarati nel Type, non i metodi quelli ereditati.

Per altre informazioni, vedere System.Reflection.BindingFlags.

System_CAPS_noteNota

È possibile omettere i parametri per la ricerca di costruttori e metodi. È possibile omettere i parametri solo quando viene richiamato.

Se l'oggetto T:System.Type corrente rappresenta un tipo generico costruito, questo metodo restituisce il MethodInfo oggetti con i parametri di tipo sostituiti dagli argomenti di tipo appropriato.

Se l'oggetto corrente Type rappresenta un parametro di tipo nella definizione di un tipo generico o un metodo generico, questo metodo cerca i metodi del vincolo di classe o i metodi di Object se è presente alcun vincolo di classe.

Nell'esempio seguente viene creata una classe con due metodi pubblici e un metodo protetto, crea un Type oggetto corrispondente a MyTypeClass, ottiene tutti i metodi pubblici e non pubblici e ne visualizza i nomi.


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
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: