我听说过参数声明的两种语法。我使用第一个用于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
)有严格的命名约定。方法上是否也有(命名)约定?
感谢。
答案 0 :(得分:1)
声明参数的方式不同,这两个函数没有区别。通常,如果使用param()语法,则可以更灵活地使用属性修改参数。参数的名称以及它们在MulV函数体中的引用方式似乎存在问题($ factor1 / 2和$ a / $ b)。
就使用方法的命名参数而言,这不起作用。