共用方式為


自訂控制項中的方法實作

在控制項中實作方法與在任何其他元件中實作的方式並無不同。

在 Visual Basic 中,如果需要方法傳回值,就會將其實作為 Public Function。 如果未傳回值,則會將它實作為 Public Sub。 方法是使用下列語法來宣告:

Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
   ' Conversion code goes here.
End Function

由於函式傳回值,因此必須指定傳回型別,例如整數、字串、物件等等。 同時也必須指定 Function 或 Sub 程序使用的任何引數 (若有的話)。

C# 和 Visual Basic 一樣,兩者都不區分函式與程序。 方法會傳回值或傳回 void。 宣告 C# 公用 (Public) 方法的語法是:

public int ConvertMatterToEnergy(int matter)
{
   // Conversion code goes here.
}

宣告方法時,應盡量將其所有引數宣告為明確資料型別。 使用物件參考的引數應該宣告為特定類別的型別 (例如 As Widget),而非 As Object。 在 Visual Basic 中,預設設定 Option Strict 會自動強制套用這項規則。

型別引數可讓編譯器找出許多開發人員所犯的錯誤,而不必到執行階段時才找出。 編譯器能夠找出每個錯誤,而執行階段測試只能達到與測試套件 (Test Suite) 同等的程度。

多載方法

如果您要讓控制項的使用者將不同的參數組合提供給方法,請使用明確資料型別來提供方法的多重多載。 請避免建立可能含有任何資料型別且宣告為 As Object 的參數,因為這可能導致在測試時無法攔截的錯誤。

Visual Basic 注意事項Visual Basic 注意事項

在 Common Language Runtime 中的通用資料型別是 Object,而不是 Variant。 Variant 已從該語言中移除。 如需詳細資訊,請參閱Visual Basic 6.0 使用者可以進行的通用資料型別變更Visual Basic 6.0 使用者可以進行的通用資料型別變更.

例如,假設的 Widget 控制項的 Spin 方法可能允許直接指定旋轉方向及速度,或指定從中吸收角度動力的另一個 Widget 物件:

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.
}

請參閱

概念

事件和委派

其他資源

Windows Form 控制項中的屬性