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 Function
nebo Sub
procedury musí být zadány také v případě potřeby.
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 specifické typy tříd , As Widget
například místo As Object
. Ve Visual Basicu výchozí nastavení Option Strict
automaticky vynucuje toto pravidlo.
Typové argumenty umožňují, aby kompilátor zachytil mnoho chyb vývojáře, a ne 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 Object
spíše než Variant
. Variant
byl odebrán z jazyka.
Například Spin
metoda hypotetického Widget
ovládacího prvku může umožňovat buď přímou specifikaci směru otáčení a rychlosti, nebo specifikaci jiného Widget
objektu, ze kterého se má úhlový pohyb absorbovat:
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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro