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.GetEvents ()

 

Data di pubblicazione: ottobre 2016

Restituisce tutti gli eventi pubblici dichiarati o ereditati dall'oggetto Type corrente.

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

public virtual EventInfo[] GetEvents()

Valore restituito

Type: System.Reflection.EventInfo[]

Matrice di oggetti EventInfo che rappresentano tutti gli eventi pubblici dichiarati o ereditati dall'oggetto Type corrente.

-oppure-

Matrice vuota di tipo EventInfo, se per l'oggetto Type corrente non esistono eventi pubblici.

Un evento è considerato pubblico per la reflection se dispone di almeno un metodo o una funzione di accesso pubblico. In caso contrario l'evento viene considerato privato ed è necessario utilizzare BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (in Visual Basic, combinare i valori utilizzando Or) per ottenerlo.

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

Questo metodo può essere sottoposto a override da una classe derivata.

La tabella seguente mostra quali vengono restituiti dai membri di una classe di base di Get metodi durante la reflection su un tipo.

Tipo di membro

Statico

Non statico

Costruttore

No

No

Campo

No

Sì. Un campo è sempre Nascondi in base al nome e-firma.

Evento

Non applicabile

La regola di sistema di tipo comune è che l'ereditarietà è uguale a quello dei metodi che implementa la proprietà. La reflection gestisce proprietà come Nascondi in base al nome e-firma. Vedere la nota 2 di seguito.

Metodo

No

Sì. Un metodo (virtuale e non virtuale) può essere hide-by-name o Nascondi in base al nome e-firma.

Tipo annidato

No

No

Proprietà

Non applicabile

La regola di sistema di tipo comune è che l'ereditarietà è uguale a quello dei metodi che implementa la proprietà. La reflection gestisce proprietà come Nascondi in base al nome e-firma. Vedere la nota 2 di seguito.

  1. Nascondi in base al nome e-firma prende in considerazione tutte le parti della firma, compresi i modificatori personalizzati, restituire tipi, tipi di parametri, elementi sentinel e convenzioni di chiamata non gestite. Si tratta di un confronto binario.

  2. Per la reflection, proprietà ed eventi sono Nascondi in base al nome e-firma. Se si dispone di una proprietà con sia un'operazione get e set nella classe base, ma la classe derivata contiene solo una funzione di accesso get, la proprietà della classe derivata nasconde la proprietà di classe di base e non sarà in grado di accedere il setter sulla classe di base.

  3. Attributi personalizzati non fanno parte di common type system.

Se l'oggetto corrente Type rappresenta un tipo generico costruito, questo metodo restituisce il EventInfo 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 o metodo generico, questo metodo cerca gli eventi del vincolo di classe.

Nell'esempio seguente si ottiene una matrice di EventInfo gli oggetti, ottiene tutti gli eventi per un Button classe e visualizza i nomi degli eventi. Per compilare l'esempio di Visual Basic, utilizzare la seguente riga di comando:

vbc type_getevents1.vb /r:System.Windows.Forms.dll /r:System.dll

using System;
using System.Reflection;
using System.Security;

class EventsSample
{
    public static void Main()
    { 
        try
        {
            // Creates a bitmask based on BindingFlags.
            BindingFlags myBindingFlags = BindingFlags.Instance | BindingFlags.Public;  
            Type myTypeEvent = typeof(System.Windows.Forms.Button);
            EventInfo[] myEventsBindingFlags = myTypeEvent.GetEvents(myBindingFlags);
            Console.WriteLine("\nThe events on the Button class with the specified BindingFlags are : ");
            for (int index = 0; index < myEventsBindingFlags.Length; index++)
            {
                Console.WriteLine(myEventsBindingFlags[index].ToString());
            }
        }
        catch(SecurityException e)
        {
            Console.WriteLine("SecurityException :" + e.Message);
        }
        catch(ArgumentNullException e)
        {
            Console.WriteLine("ArgumentNullException : " + e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception : " + e.Message);
        }
    }
}

.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: