共用方式為


如何:重載採用選擇性參數的程序(Visual Basic)

如果程式有一或多個 選擇性 參數,則您無法定義符合其任何隱含多載的多載版本。 如需詳細資訊,請參閱重載程序中的注意事項中的「選擇性參數的隱式重載」。

一個選擇性參數

多載採用一個選擇性參數的程式

  1. 撰寫 SubFunction 宣告語句,包含在參數清單中的選用參數。 請勿在此多載版本中使用 Optional 關鍵詞。

  2. SubFunction 關鍵詞前面加上 Overloads 關鍵詞。

  3. 撰寫程式代碼,此程式代碼應在呼叫程式代碼提供選擇性自變數時執行。

  4. 視需要以 End SubEnd Function 語句終止程式。

  5. 撰寫第二個宣告語句,這個語句與第一個宣告相同,不同之處在於它不包含參數清單中的選擇性參數。

  6. 撰寫當呼叫程式代碼未提供選擇性自變數時,應該執行的程式代碼。 視需要以 End SubEnd Function 語句終止程式。

    下列範例顯示一個定義了可選參數的程序、一組等價的重載程序,最後還有無效和有效重載版本的範例。

    Sub q(ByVal b As Byte, Optional ByVal j As Long = 6)
    
    ' The preceding definition is equivalent to the following two overloads.
    ' Overloads Sub q(ByVal b As Byte)
    ' Overloads Sub q(ByVal b As Byte, ByVal j As Long)
    
    ' Therefore, the following overload is not valid because the signature is already in use.
    ' Overloads Sub q(ByVal c As Byte, ByVal k As Long)
    ' The following overload uses a different signature and is valid.
    Overloads Sub q(ByVal b As Byte, ByVal j As Long, ByVal s As Single)
    

多個選擇性參數

對於具有多個選擇性參數的程式,您通常需要兩個以上的多載版本。 例如,如果有兩個選擇性參數,而且呼叫端程式代碼可以分別提供或省略每個參數,您需要四個多載版本,每個可能組合提供的自變數各一個。

隨著選擇性參數的數目增加,多載的複雜度會增加。 除非無法接受某些提供的自變數組合,否則對於 N 個選擇性參數,您需要 2 ^ N 個多載版本。 根據程式的性質,您可能會發現邏輯的明確性可讓定義所有多載版本的額外工作合理。

多載採用多個選擇性參數的程式

  1. 判斷程式邏輯可接受所提供選擇性自變數的組合。 如果某個選擇性參數相依於另一個選擇性參數,可能會產生不可接受的組合。 例如,如果一個參數接受人員的名稱,而另一個參數接受該人員的年齡,則提供年齡但省略名稱的自變數組合是不可接受的。

  2. 針對提供之選擇性自變數的每個可接受的組合,撰寫SubFunction或宣告語句來定義對應的參數清單。 請勿使用 Optional 關鍵詞。

  3. 在每個宣告中,在 SubFunction 關鍵詞前面加上 Overloads 關鍵詞。

  4. 在每個宣告之後,撰寫當呼叫程式代碼提供對應至該宣告參數清單的自變數清單時,應該執行的程序代碼。

  5. 視需要以 End SubEnd Function 語句終止每個程式。

另請參閱