0

我是Vb腳本的新手,我必須創建一個需要大量參數的函數(關鍵字),但在Vb腳本中不允許使用可選參數。VBscript中的可選參數

我做了一些網絡研究,我發現我可以使用參數數組或對象字典。我想知道在哪種情況下,最好使用參數數組,當我必須使用Dictionary。另外,在每種情況下,添加參數到我的函數參數是否容易?

回答

0

我會建議爲所有參數創建一個類,並傳遞該類的單個實例。使用大量參數的方法是一個糟糕的設計,並且如果使用數組,則它的健​​壯性會降低,因爲您必須始終計算以確定參數所處的索引。通過一個類,所有的「參數」將被命名爲字段或屬性。

這裏就是我說的是一個簡單的例子:

Dim cfg : Set cfg = New CarConfig 

With cfg 
    .MakeName = "Ford" 
    .ModelName = "Escort" 
    .StyleName = "2-Door" 
    .ColorName = "Blue" 
    .NumWheels = 4 
End With 

Call BuildCar(cfg) 

Sub BuildCar(usingConfig) 
    With usingConfig 
     Call MsgBox("Your " & .ColorName & " " & _ 
      .StyleName & " " & .MakeName & " " & _ 
      .ModelName & " has: " & _ 
      cfg.NumWheels & " wheels.") 
    End With 
End Sub 

Class CarConfig 
    Public MakeName 
    Public ModelName 
    Public NumWheels 
    Public ColorName 
    Public StyleName 
End Class 
+0

是的,我想得有關使用類來封裝我的所有參數,並創建一個方法add_paramater並調用它每次我需要給這個班級添加一個參數你認爲怎麼樣? – sourh

+0

那麼,我的意思是你創建一個具有一組靜態命名屬性的類,而不是一組參數。否則,你將不得不通過名稱來解決你的參數,以及如果你的參數名稱改變,並且你忘記改變字符串值來解決你的參數呢?它可能導致錯誤,因此它不夠健壯。 –

+0

你是對的,我在考慮讓一個類有一個參數集合,或者每個參數都有一個getter和一個setter,但是如果我改變一個參數的名字,我沒有想到這種情況。那麼,請您詳細介紹一下如何使用靜態的命名屬性集,因爲我是VBS新手。如果您可以給我一個例子。 – sourh