Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Type.GetEvents-Methode

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

Typ: 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 wird von der Reflektion als öffentlich betrachtet, wenn es über mindestens einen öffentlichen Accessor verfügt. Andernfalls wird das Ereignis als privat betrachtet, und Sie müssen BindingFlags.NonPublic verwenden. | BindingFlags.Instance | BindingFlags.Static (kombinieren Sie in Visual Basic die Werte mit Or), um abzurufen.

Die GetEvents-Methode gibt Ereignisse nicht in einer bestimmten Reihenfolge zurück, d. h. nicht in alphabetischer Reihenfolge oder in der Reihenfolge der Deklaration. Der Code darf daher nicht von der Reihenfolge der zurückgegebenen Ereignisse abhängen, da diese variieren kann.

Diese Methode kann von einer abgeleiteten Klasse überschrieben werden.

In der folgenden Tabelle sind die Member einer Basisklasse aufgeführt, die bei der Reflektion eines Typs von den Get-Methoden zurückgegeben werden.

Memberart

Static

Nicht statisch

Konstruktor

nein

nein

Feld

nein

Ja. Felder sind immer nach Namen und Signatur verdeckt.

Ereignis

Nicht zutreffend

Im allgemeinen Typsystem ist die Vererbung i. d. R. dieselbe wie die Vererbung der Methoden, die die Eigenschaft implementieren. Die Reflektion behandelt Eigenschaften als nach Namen und Signatur verdeckt. Siehe Hinweis 2 unten.

Methode

nein

Ja. Eine Methode, virtuell oder nicht virtuell, kann nach Namen oder nach Namen und Signatur verdeckt sein.

Geschachtelter Typ

nein

nein

Eigenschaft

Nicht zutreffend

Im allgemeinen Typsystem ist die Vererbung i. d. R. dieselbe wie die Vererbung der Methoden, die die Eigenschaft implementieren. Die Reflektion behandelt Eigenschaften als nach Namen und Signatur verdeckt. Siehe Hinweis 2 unten.

  1. Beim Verdecken nach Namen und Signatur werden alle Teile der Signatur berücksichtigt. Dies schließt benutzerdefinierte Modifizierer, Rückgabetypen, Parametertypen, Sentinels und nicht verwaltete Aufrufkonventionen ein. Dies ist ein binärer Vergleich.

  2. Die Reflektion behandelt Eigenschaften und Ereignisse als nach Namen und Signatur verdeckt. Wenn eine Eigenschaft in einer Basisklasse sowohl einen Get-Accessor als auch einen Set-Accessor, in einer abgeleiteten Klasse hingegen nur einen Get-Accessor besitzt, verdeckt die Eigenschaft der abgeleiteten Klasse die Eigenschaft der Basisklasse, und der Set-Accessor der Basisklasse ist nicht mehr zugänglich.

  3. Benutzerdefinierte Attribute sind nicht Teil des allgemeinen Typsystems.

Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die EventInfo-Objekte zurück, wobei die Typparameter durch die entsprechenden Typargumente ersetzt wurden.

Wenn der aktuelle Type einen Typparameter einer generischen Typ- oder Methodendefinition darstellt, durchsucht diese Methode die Ereignisse der Klasseneinschränkung.

Im folgenden Beispiel werden ein Array von EventInfo-Objekten und alle Ereignisse einer Button-Klasse abgerufen und die Ereignisnamen angezeigt. Verwenden Sie zum Kompilieren des Beispiels in Visual Basic die folgende Befehlszeile:

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

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Phone-Apps

Unterstützt in: 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 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft