PowerShell:如何使用方法和参数

时间:2012-06-06 16:55:22

标签: oop shell powershell command-line

关于方法'语法:

我听说过参数声明的两种语法。我使用第一个用于MulT,另一个用于MulV

$MathObject = (New-Module {
    function MulT([int]$Factor1, [int]$Factor2) {
        $Factor1 * $Factor2
    }

    function MulV{
        param(
            [int]$Factor1,
            [int]$Factor2
        )
        return $a * $b
    }
} -AsCustomObject)

MulT的语法与MulV的语法之间有什么区别?我应该使用哪种?

命名参数:

Cmdlet可以有命名参数:

Multiply-IntegerFactors -Factor1 5 -Factor2 8

对象的方法是否也有命名参数?我在想类似的事情:

$MathObject.MulT(-Factor1 5, -Factor2 8)

编辑: 您是否认为使用哈希表作为参数以便在其中存储命名参数是一个很好的解决方案? :$MathObject.MulT(@{Faktor1=5, Faktor2=8}) - 还是有更好的解决方案吗?

方法公约:

Cmdlet(Verb-CamelCaseNoun)和模块(CamelCaseModuleName)有严格的命名约定。方法上是否也有(命名)约定?

感谢。

1 个答案:

答案 0 :(得分:1)

声明参数的方式不同,这两个函数没有区别。通常,如果使用param()语法,则可以更灵活地使用属性修改参数。参数的名称以及它们在MulV函数体中的引用方式似乎存在问题($ factor1 / 2和$ a / $ b)。

就使用方法的命名参数而言,这不起作用。