【问题标题】:Optional Parameters in VBscriptVBscript 中的可选参数
【发布时间】:2016-09-28 11:24:49
【问题描述】:

我是 Vb 脚本的新手,我必须创建一个需要大量参数但在 Vb 脚本中不允许使用可选参数的函数(关键字)。

我做了一些网络研究,发现我可以使用参数数组或对象字典。我想知道在哪种情况下最好使用参数数组以及何时必须使用字典。另外,在每种情况下向我的函数参数添加参数是否容易?

【问题讨论】:

    标签: vbscript automation keyword keyword-argument params-keyword


    【解决方案1】:

    我建议为所有参数创建一个类,并传递该类的单个实例。拥有大量参数的方法是一个糟糕的设计,如果你使用数组,它的健壮性就会降低,因为你总是需要数数才能确定你的参数所在的索引。有了一个类,你所有的“参数”都将被命名为字段或属性。

    下面是我所说的一个简单示例:

    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
    

    【讨论】:

    • 是的,我也在考虑使用一个类来封装我的所有参数并创建一个方法 add_paramater 并在每次我需要向这个类添加一个参数时调用它你觉得怎么样?
    • 嗯,我的意思是创建一个具有一组静态命名属性的类,而不是一组参数。否则,您将不得不按名称寻址参数,如果参数名称更改而您忘记更改寻址参数的字符串值怎么办?它可能会导致错误,因此它不那么健壮。
    • 你是对的,我正在考虑有一个包含参数集合的类,或者每个参数我有一个 getter 和一个 setter,但如果我更改一个名称,我没有考虑过这种情况参数。那么,您能否详细说明如何使用一组静态命名属性,因为我是 VBS 新手。如果可以,请给我一个示例。
    • 我尝试将您的解决方案应用于我的案例,但我认为这不是必需的:在我的情况下,我有一个要在 UFT 中运行的 excel 测试,并且我有一个关键字 Add_Car 例如。在 Excel 表中,我必须输入此关键字的所有参数的值。在 Excel 表中输入参数值后,它将在 UFT 中运行。
    • 哦,现在不一样了。我没有意识到你得到了一组 dynamic 值。在这种情况下,是的,您应该考虑使用字典。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2017-05-26
    • 2017-11-18
    相关资源
    最近更新 更多