Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Type.GetEvents-Methode: ()

 

Veröffentlicht: Oktober 2016

Gibt sämtliche vom aktuellen Type deklarierten oder geerbten öffentlichen Ereignisse zurück.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public virtual EventInfo[] GetEvents()

Rückgabewert

Type: System.Reflection.EventInfo[]

Gibt ein Array von EventInfo-Objekten zurück, die sämtliche vom aktuellen Type deklarierten oder geerbten öffentlichen Ereignisse darstellen.

- oder -

Ein leeres Array vom EventInfo-Typ, wenn der aktuelle Type keine öffentlichen Ereignisse besitzt.

Implementiert

_Type.GetEvents()

Ein Ereignis ist Reflektion als öffentlich betrachtet, wenn sie verfügt über mindestens eine Methode oder Accessor, der öffentlich ist. Andernfalls wird das Ereignis als privat betrachtet, und Sie müssen BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (in Visual Basic, kombinieren Sie die Werte mit Or) zum Abrufen.

Die GetEvents Methode gibt keinen zurück Ereignisse in einer bestimmten Reihenfolge, z. B. alphabetische oder Reihenfolge der Deklaration. Der Code muss nicht richten sich nach der Reihenfolge, in der Ereignisse zurückgegeben werden, da, bei der Reihenfolge.

Diese Methode kann durch eine abgeleitete Klasse überschrieben werden.

Die folgende Tabelle zeigt, welche Member einer Basisklasse von zurückgegeben werden die Get Methoden, wenn für einen Typ reflektieren.

Memberart

Statisch

Nicht statische

Konstruktor

Nein

Nein

Feld

Nein

Ja. Ein Feld ist immer nach Name und Signatur ausblenden.

Ereignis

Nicht zutreffend

Das allgemeine Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden. Siehe Hinweis 2 weiter unten.

Methode

Nein

Ja. Eine Methode (virtuelle und nicht virtuell) möglich nach Namen verdeckte oder nach Name und Signatur ausblenden.

Geschachtelten Typs

Nein

Nein

Eigenschaft

Nicht zutreffend

Das allgemeine Typsystem ist, dass die Vererbung ist identisch mit der Methoden, die die Eigenschaft zu implementieren. Reflektion behandelt Eigenschaften als nach Name und Signatur ausblenden. Siehe Hinweis 2 weiter unten.

  1. Nach Name und Signatur ausblenden berücksichtigt, dass alle Teile der Signatur, die benutzerdefinierten Modifizierer, einschließlich Typen, Parametertypen Sentinels enthält und nicht verwalteten Aufrufkonventionen zurückgeben. Dies ist ein binärer Vergleich.

  2. Für die Reflektion sind die Eigenschaften und Ereignisse nach Name und Signatur ausblenden. Wenn Sie eine Eigenschaft mit einer Get und Set-Zugriffsmethode in der Basisklasse haben, aber hat nur einen Get-Accessor für die abgeleitete Klasse, die Eigenschaft der abgeleiteten Klasse ausgeblendet die Basisklasseneigenschaft und nicht den Setter für die Basisklasse zugreifen werden.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.

Wenn die aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die EventInfo Objekte mit Parametern für den durch die entsprechenden Typargumente ersetzt.

Wenn die aktuelle Type stellt einen Typparameter in der Definition einer generischen Typ- oder Methodendefinition, diese Methode sucht die Ereignisse der Class-Einschränkung.

Im folgende Beispiel ruft ein Array von EventInfo Objekte, ruft die Ereignisse für eine Button Klasse, und die Ereignisnamen angezeigt. Um die Visual Basic-Beispiel zu kompilieren, verwenden Sie die folgende Befehlszeile ein:

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
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: