Implementace metody ve vlastních ovládacích prvcích
Metoda se implementuje v ovládacím prvku stejným způsobem jako metoda by byla implementována v jakékoli jiné komponentě.
V jazyce Visual Basic, pokud je metoda nutná k vrácení hodnoty, je implementována jako Public Function
. Pokud se nevrátí žádná hodnota, implementuje se jako Public Sub
. Metody jsou deklarovány pomocí následující syntaxe:
Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
' Conversion code goes here.
End Function
Vzhledem k tomu, že funkce vracejí hodnotu, musí zadat návratový typ, například celé číslo, řetězec, objekt atd. Argumenty procedur Function
nebo Sub
, pokud existují, musí být také uvedeny.
Jazyk C# nerozlišuje mezi funkcemi a procedurami, stejně jako Jazyk Visual Basic. Metoda buď vrátí hodnotu, nebo vrátí void
. Syntaxe pro deklarování veřejné metody jazyka C#je:
public int ConvertMatterToEnergy(int matter)
{
// Conversion code goes here.
}
Když deklarujete metodu, deklarujte všechny její argumenty jako explicitní datové typy, kdykoli je to možné. Argumenty, které přebírají odkazy na objekty, by měly být deklarovány jako konkrétní typy tříd , například As Widget
místo As Object
. Ve Visual Basicu výchozí nastavení Option Strict
toto pravidlo automaticky vynucuje.
Typové argumenty umožňují kompilátoru zachytit mnoho chyb vývojáře již při kompilaci, místo za běhu. Kompilátor vždy zachytává chyby, zatímco testování za běhu je stejně dobré jako testovací sada.
Přetížené metody
Pokud chcete uživatelům vašeho ovládacího prvku povolit zadávání různých kombinací parametrů metodě, zadejte více přetížení metody pomocí explicitních datových typů. Vyhněte se vytváření parametrů deklarovaných As Object
, které mohou obsahovat libovolný datový typ, protože to může vést k chybám, které nemusí být zachyceny při testování.
Poznámka
Univerzální datový typ v modulu CLR (Common Language Runtime) je spíše Object
než Variant
.
Variant
byl odebrán z jazyka.
Například metoda Spin
hypotetického Widget
řízení může umožňovat přímou specifikaci směru a rychlosti otáčení, nebo specifikaci jiného Widget
objektu, ze kterého má být absorbována úhlová dynamika:
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.
}
Viz také
.NET Desktop feedback