Implementierung von Methoden in benutzerdefinierten Steuerelementen
Eine Methode wird in einem Steuerelement auf dieselbe Weise implementiert, wie eine Methode in eine beliebige andere Komponente implementiert würde.
Wenn es in Visual Basic erforderlich ist, dass eine Methode einen Wert zurückgibt, wird sie als Public Function implementiert. Wenn kein Wert zurückgegeben wird, wird die Methode als Public Sub implementiert. Methoden werden mit der folgenden Syntax deklariert:
Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
' Conversion code goes here.
End Function
Da Funktionen einen Wert zurückgeben, muss ein Rückgabetyp angegeben werden, z. B. ganze Zahl, Zeichenfolge, Objekt usw. Wenn Function-Prozeduren oder Sub-Prozeduren Argumente übernehmen, müssen diese ebenfalls angegeben werden.
In C# wird nicht wie in Visual Basic zwischen Funktionen und Prozeduren unterschieden. Von einer Methode wird entweder ein Wert oder void zurückgegeben. Die Syntax zum Deklarieren einer öffentlichen C#-Methode lautet:
public int ConvertMatterToEnergy(int matter)
{
// Conversion code goes here.
}
Wenn eine Methode deklariert wird, sollten wenn möglich alle ihre Argumente als explizite Datentypen deklariert werden. Argumente, die Objektverweise verwenden, sollten als spezielle Klassentypen deklariert werden, z. B. As Widget anstatt As Object. In Visual Basic wird die Einhaltung dieser Regel mit der Standardeinstellung Option Strict automatisch erzwungen.
Mit typisierten Argumenten ist es möglich, dass viele Entwicklerfehler bereits vom Compiler und nicht erst zur Laufzeit aufgefangen werden. Fehler werden vom Compiler grundsätzlich aufgefangen, während die Qualität des Laufzeittests von der Art der Testreihe bestimmt wird.
Überladene Methoden
Wenn Benutzer des Steuerelements in der Lage sein sollen, verschiedene Kombinationen von Parametern für Methoden anzugeben, müssen mehrere Überladungen der Methode unter Verwendung expliziter Datentypen bereitgestellt werden. Das Erstellen von Parametern, die als As Object deklariert sind und beliebige Datentypen enthalten können, sollte vermieden werden. Dies könnte zu Fehlern führen, die während des Testens nicht aufgefangen werden.
Visual Basic-Hinweis: |
---|
Bei dem universellen Datentyp in der Common Language Runtime handelt es sich um Object und nicht um Variant. Variant wurde aus der Sprache entfernt. Weitere Informationen finden Sie unter Änderungen an universellen Datentypen für Visual Basic 6.0-Benutzer und Änderungen an universellen Datentypen für Visual Basic 6.0-Benutzer. |
Mit der Spin-Methode eines hypothetischen Widget-Steuerelements könnte beispielsweise entweder die direkte Angabe der Richtung und Geschwindigkeit des Drehfelds oder die Angabe eines anderen Widget-Objekts ermöglicht werden, von dem das Drehmoment übernommen wird:
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.
}