Share via


Instrucciones de nomenclatura de eventos

En las reglas siguientes se describen las instrucciones de nomenclatura de eventos:

  • Utilice el estilo de Mayúsculas y minúsculas Pascal.
  • No utilice la notación húngara.
  • Utilice un sufijo EventHandler en nombres de controladores de eventos.
  • Especifique dos parámetros denominados sender y e. El parámetro sender representa al objeto que produjo el evento. El parámetro sender es siempre de tipo object, aunque sea posible utilizar un tipo más específico. El estado asociado con el evento está encapsulado en una instancia de una clase de eventos denominada e. Use una clase de eventos apropiada y específica para el tipo de parámetro e.
  • Asigne un nombre a la clase de argumentos del evento con el sufijo EventArgs.
  • Es conveniente asignar los nombres de eventos con un verbo. Por ejemplo, nombres de eventos correctos incluyen Clicked, Painting y DroppedDown.
  • Utilice un verbo en gerundio para crear un nombre de evento que exprese el concepto de evento anterior, y un tiempo en pasado para representar un evento posterior. Por ejemplo, un evento Close que se puede cancelar, debe tener un evento Closing y un evento Closed. No utilice el modelo de nomenclatura BeforeXxx/AfterXxx.
  • No utilice prefijo ni sufijo en la declaración de evento en el tipo. Por ejemplo, utilice Close en vez de OnClose.
  • En general, se debe proporcionar un método protegido denominado OnXxx en los tipos con eventos que se pueden reemplazar en una clase derivada. Este método debe tener sólo el parámetro de evento e, ya que el remitente es siempre la instancia del tipo.

En el ejemplo siguiente se muestra un controlador de eventos con nombre y parámetros correctos.

Public Delegate Sub MouseEventHandler(sender As Object, e As MouseEventArgs)
[C#]
public delegate void MouseEventHandler(object sender, MouseEventArgs e);

En el siguiente ejemplo se muestra una clase de argumentos de evento con nombre correcto.

Public Class MouseEventArgs
   Inherits EventArgs 
   Dim x As Integer
   Dim y As Integer

   Public Sub New MouseEventArgs(x As Integer, y As Integer) 
      me.x = x
      me.y = y
   End Sub
      
   Public Property X As Integer
      Get 
         Return x
      End Get
   End Property
      
   Public Property Y As Integer
      Get 
         Return y
      End Get
   End Property
End Class
[C#]
public class MouseEventArgs : EventArgs 
{
   int x;
   int y;
   public MouseEventArgs(int x, int y) 
      { this.x = x; this.y = y; }
   public int X { get { return x; } } 
   public int Y { get { return y; } } 
}

Vea también

Instrucciones de diseño para programadores de bibliotecas de clases | Instrucciones de uso de eventos