Sdílet prostřednictvím


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é