Implementação de métodos em controles personalizados
Um método é implementado em um controle da mesma maneira que um método seria implementado em qualquer outro componente.
No Visual Basic, se um método é necessário para retornar um valor, ele é implementado como um Public Function
. Se nenhum valor for retornado, ele será implementado como um Public Sub
. Os métodos são declarados usando a seguinte sintaxe:
Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
' Conversion code goes here.
End Function
Como as funções retornam um valor, elas devem especificar um tipo de retorno, como inteiro, cadeia de caracteres, objeto e assim por diante. Os argumentos que os procedimentos Function
ou Sub
tomam, se houver, também devem ser especificados.
C# não faz distinção entre funções e procedimentos, como o Visual Basic faz. Um método retorna um valor ou retorna void
. A sintaxe para declarar um método público C# é:
public int ConvertMatterToEnergy(int matter)
{
// Conversion code goes here.
}
Quando você declara um método, declare todos os seus argumentos como tipos de dados explícitos sempre que possível. Os argumentos que usam referências de objeto devem ser declarados como tipos de classe específicos — por exemplo, As Widget
em vez de As Object
. No Visual Basic, a configuração padrão Option Strict
impõe automaticamente essa regra.
Os argumentos digitados permitem que muitos erros do desenvolvedor sejam detetados pelo compilador, em vez de em tempo de execução. O compilador sempre deteta erros, enquanto o teste em tempo de execução é tão bom quanto o conjunto de testes.
Métodos sobrecarregados
Se você quiser permitir que os usuários do seu controle forneçam diferentes combinações de parâmetros para um método, forneça várias sobrecargas do método, usando tipos de dados explícitos. Evite criar parâmetros declarados As Object
que possam conter qualquer tipo de dados, pois isso pode levar a erros que podem não ser detetados no teste.
Observação
O tipo de dados universal no common language runtime é Object
em vez de Variant
.
Variant
foi removido da língua.
Por exemplo, o método Spin
de um controle de Widget
hipotético pode permitir a especificação direta da direção e velocidade de rotação ou a especificação de outro objeto Widget
a partir do qual o momento angular deve ser absorvido:
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.
}
Ver também
.NET Desktop feedback