Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Type.GetEvents ()

 

Publicado: octubre de 2016

Devuelve todos los eventos públicos declarados o heredados por el objeto Type actual.

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

public virtual EventInfo[] GetEvents()

Valor devuelto

Type: System.Reflection.EventInfo[]

Matriz de objetos EventInfo que representa todos los eventos públicos declarados o heredados por el objeto Type actual.

o bien

Matriz vacía de tipo EventInfo si el objeto actual Type no tiene eventos públicos.

Un evento se considera público para la reflexión si tiene al menos un método o descriptor de acceso que es público. En caso contrario, el evento se considera privado, y debe usar BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (en Visual Basic, combine los valores utilizando Or) para obtenerlo.

El GetEvents método no devuelve eventos en un orden determinado, como alfabético o el orden de declaración. El código no debe depender del orden en que se devuelven los eventos, porque ese orden varía.

Este método puede reemplazarse por una clase derivada.

La siguiente tabla muestra qué miembros de una clase base se devuelven los Get métodos cuando se reflejan en un tipo.

Tipo de miembro

Estático

No estáticos

Constructor

No

No

Campo

No

Sí. Un campo siempre es ocultar por nombre y firma.

Evento

No es aplicable

La regla de sistema de tipo común es que la herencia es igual que la de los métodos que implementa la propiedad. La reflexión trata las propiedades como ocultar por nombre y firma. Véase la nota 2.

Método

No

Sí. Un método (virtual y no virtuales) pueden ocultar por nombre u ocultar por nombre y firma.

Tipo anidado

No

No

Propiedad

No es aplicable

La regla de sistema de tipo común es que la herencia es igual que la de los métodos que implementa la propiedad. La reflexión trata las propiedades como ocultar por nombre y firma. Véase la nota 2.

  1. Ocultar por nombre y firma considera que todas las partes de la firma, incluidos los modificadores personalizados, devuelven tipos, tipos de parámetro, centinelas y las convenciones de llamada no administradas. Se trata de una comparación binaria.

  2. Para la reflexión, propiedades y eventos están ocultos por nombre y firma. Si tiene una propiedad con una operación get y un descriptor de acceso de la clase base, pero la clase derivada tiene solo un descriptor de acceso get, la propiedad de clase derivada oculta la propiedad de clase base y no podrá tener acceso el establecedor de la clase base.

  3. Atributos personalizados no forman parte del sistema de tipos comunes.

Si la actual Type representa un tipo genérico construido, este método devuelve el EventInfo objetos con los parámetros de tipo sustituidos por los argumentos de tipo adecuado.

Si la actual Type representa un parámetro de tipo en la definición de un tipo genérico o de método genérico, este método busca los eventos de la restricción de clase.

En el ejemplo siguiente se obtiene una matriz de EventInfo los objetos, obtiene todos los eventos de un Button clase y muestra los nombres de evento. Para compilar el ejemplo de Visual Basic, use la siguiente línea de comandos:

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
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: