2016-09-28 176 views
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