Implementación de métodos en controles personalizados
Un método se implementa en un control de la misma manera que se implementa en cualquier otro componente.
En Visual Basic, si se necesita un método para devolver un valor, se implementa como Public Function
. Si no se devuelve ningún valor, se implementa como Public Sub
. Los métodos se declaran mediante la siguiente sintaxis:
Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
' Conversion code goes here.
End Function
Como las funciones devuelven un valor, deben especificar un tipo de valor devuelto, por ejemplo, entero, cadena, objeto, etc. También se deben especificar los argumentos Function
o Sub
que toma el procedimiento, si corresponde.
C# no realiza distinciones entre funciones y procedimientos como sí hace Visual Basic. Un método devuelve un valor o devuelve 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 de objeto se deben declarar como tipos de clase específicos, por ejemplo, As Widget
en lugar de As Object
. En Visual Basic, la opción predeterminada Option Strict
aplica automáticamente esta regla.
Los argumentos con tipo permiten capturar muchos errores del desarrollador en el compilador, en lugar de en tiempo de ejecución. El compilador siempre captura errores, mientras que las pruebas en tiempo de ejecución solo son buenas si el conjunto de pruebas lo es.
Métodos sobrecargados
Si quiere que los usuarios del control puedan suministrar diferentes combinaciones de parámetros a un método, proporcione varias sobrecargas del método usando tipos de datos explícitos. Evite crear parámetros declarados As Object
que puedan contener algún tipo de datos, porque esto podría provocar errores que quizás no se capturen en las pruebas.
Nota
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 control Widget
hipotético podría permitir especificar directamente la dirección y la velocidad de giro, o especificar otro objeto Widget
desde el cual se absorba 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
.NET Desktop feedback