Implementacja metody w kontrolkach niestandardowych
Metoda jest implementowana w kontrolce w taki sam sposób, jak metoda byłaby implementowana w każdym innym składniku.
W języku Visual Basic, jeśli metoda jest wymagana do zwrócenia wartości, jest implementowana jako Public Function
. Jeśli żadna wartość nie zostanie zwrócona, zostanie zaimplementowana jako Public Sub
. Metody są deklarowane przy użyciu następującej składni:
Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
' Conversion code goes here.
End Function
Ponieważ funkcje zwracają wartość, muszą określić typ zwracany, taki jak liczba całkowita, ciąg, obiekt itd. Argumenty, które przyjmują procedury Function
lub Sub
, jeśli są, należy również określić.
Język C# nie rozróżnia funkcji i procedur, tak jak w języku Visual Basic. Metoda zwraca wartość lub zwraca void
. Składnia deklarowania publicznej metody języka C# to:
public int ConvertMatterToEnergy(int matter)
{
// Conversion code goes here.
}
Podczas deklarowania metody zadeklaruj wszystkie jej argumenty jako jawne typy danych, jeśli to możliwe. Argumenty, które przyjmują odwołania do obiektów, powinny być deklarowane jako określone typy klas — na przykład As Widget
zamiast As Object
. W języku Visual Basic ustawienie domyślne Option Strict
automatycznie wymusza tę regułę.
Wpisane argumenty umożliwiają przechwyceniu wielu błędów deweloperów przez kompilator, a nie w czasie wykonywania. Kompilator zawsze wykrywa błędy, podczas gdy testy w czasie wykonywania są tylko tak dobre, jak zestaw testów.
Metody przeciążone
Jeśli chcesz zezwolić użytkownikom kontrolki na dostarczanie różnych kombinacji parametrów do metody, podaj wiele przeciążeń metody przy użyciu jawnych typów danych. Unikaj tworzenia zadeklarowanych parametrów As Object
, które mogą zawierać dowolny typ danych, ponieważ może to prowadzić do błędów, które mogą nie zostać przechwycone podczas testowania.
Notatka
Uniwersalny typ danych w środowisku uruchomieniowym języka wspólnego jest Object
, a nie Variant
.
Variant
został usunięty z języka.
Na przykład metoda Spin
hipotetycznego sterowania Widget
może zezwalać na bezpośrednią specyfikację kierunku i prędkości spinu lub specyfikację innego obiektu Widget
, z którego ma zostać wchłonięty pęd kątowy:
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.
}
Zobacz też
- Wydarzenia
- właściwości w kontrolkach formularzy systemu Windows
.NET Desktop feedback