自訂控制項中的方法實作
在控制項中實作方法的方式,與在其他任何元件中實作方法的方式相同。
在 Visual Basic 中,若方法必須傳回值,會實作為 Public Function
。 若無須傳回值,便會實作為 Public Sub
。 方法會透過下列語法宣告:
Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
' Conversion code goes here.
End Function
由於函式需要傳回值,因此必須指定傳回類型,例如 integer、string、object 等等。 程序如有接受引數 Function
或 Sub
,也必須加以指定。
C# 的函式與程序與 Visual Basic 並無差別。 方法會傳回值或傳回 void
。 以下是宣告 C# 公用方法的語法:
public int ConvertMatterToEnergy(int matter)
{
// Conversion code goes here.
}
當您宣告方法時,應盡可能地將其所有引數宣告成明確的資料類型。 接受物件參考的引數應宣告為特定類型,例如應宣告為 As Widget
,而不是 As Object
。 在 Visual Basic 中,預設設定 Option Strict
會自動施行此規則。
宣告引數的類型有助於編譯器預先檢出許多開發人員的錯誤,而不是在執行時發生。 編譯器一律會檢查錯誤,而執行時期測試僅具備測試套件的功能。
多載方法
若要允許控制項的使用者提供不同的參數組合給方法,請使用明確的資料類型,為方法提供多個多載。 請避免建立宣告有可能會包含任何資料類型之 As Object
的參數,因為這可能會導致測試時無法檢出的錯誤。
注意
常見於語言執行時期的通用資料為 Object
,而不是 Variant
。 Variant
已從語言中移除。
例如假設 Spin
控制項的 Widget
方法可能會允許直接指定微調的方向及速度,或指定其他角動量要被吸收的 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.
}
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應