Compartir a través de


Implementación de métodos en controles personalizados

Actualización: noviembre 2007

Un método se implementa en un control del mismo modo que se haría en cualquier otro componente.

En Visual Basic, si es necesario que un método devuelva un valor, se implementa como Public Function. Si no se devuelve ningún valor, se implementa como un Public Sub. Los métodos se declaran con la sintaxis siguiente:

Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
   ' Conversion code goes here.
End Function

Puesto que las funciones devuelven un valor, deben especificar un tipo de valor devuelto, como los valores Integer, String, Object, etc. También deben especificarse los argumentos que admiten los procedimientos Function o Sub, en caso de que los haya.

C# no hace ninguna distinción entre funciones y procedimientos, como ocurre en Visual Basic. Los métodos devuelven un valor o un tipo void. La sintaxis para declarar un método público de C# es:

public int ConvertMatterToEnergy(int matter)
{
   // Conversion code goes here.
}

Cuando declare un método, declare todos sus argumentos como tipos de datos explícitos siempre que sea posible. Los argumentos que toman referencias a objetos se deberían declarar como tipos de clase concretos, por ejemplo, As Widget en lugar de As Object. En Visual Basic, el valor predeterminado Option Strict exige automáticamente esta regla.

Los argumentos con tipo permiten que el compilador capture muchos errores de los programadores, en lugar de hacerse en tiempo de ejecución. El compilador captura siempre los errores, mientras que la comprobación en tiempo de ejecución se limita a la capacidad del sistema de prueba.

Métodos sobrecargados

Si desea permitir que los usuarios del control puedan suministrar a un método diferentes combinaciones de parámetros, proporcione varias sobrecargas del método por medio de tipos de datos explícitos. Evite crear parámetros declarados As Object que puedan contener tipos de datos, ya que pueden provocar errores que pueden no capturarse en la comprobación.

Nota para Visual Basic:

El tipo de datos universal en Common Language Runtime es Object en lugar de Variant. Variant se ha quitado del lenguaje.

Por ejemplo, el método Spin de un hipotético control Widget podría permitir la especificación directa de la dirección y velocidad de giro o la especificación de otro objeto Widget del cual se absorbe el momento angular:

Overloads Public Sub Spin( _
   ByVal SpinDirection As SpinDirectionsEnum, _
   ByVal RevolutionsPerSecond As Double)
   ' Implementation code here.
End Sub
Overloads Public Sub Spin(ByVal Driver As Widget) _
   ' Implementation code here.
End Sub
public void Spin(SpinDirectionsEnum spinDirection, double revolutionsPerSecond)
{
   // Implementation code here.
}

public void Spin(Widget driver)
{
   // Implementation code here.
}

Vea también

Conceptos

Eventos y delegados

Otros recursos

Propiedades de los controles de formularios Windows Forms