我写了函数'A',它将调用其他函数之一。为了保存重写函数'A',我想传递函数作为函数'A'的参数。例如:PowerShell:传递函数作为参数
function A{
Param($functionToCall)
Write-Host "I'm calling : $functionToCall"
}
function B{
Write-Host "Function B"
}
Function C{
write-host "Function C"
}
A -functionToCall C
返回:我打电话:C
我期待它返回:我打电话:功能C.
我已经尝试了各种东西,如:
Param([scriptblock]$functionToCall)
无法转换System.String要脚本块
A -functionToCall $function:C
返回“写主机‘功能C’
A - functionToCall (&C)
这个评估它的其余部分之前:
Function C
I'm Calling :
我敢肯定,这是程序101,但我不能工作了正确的语法或者我做错了什么。任何帮助将受到感谢。非常感谢。
不,这只是将字符串“c”传递给函数,它不会传递函数对象C作为参数。 – Duncan
问题不清楚。看到更新的答案。使用scriptblock-property你也可以调用传递函数 –
Spot on。非常感谢你@Frode F.非常感谢。如此简单,当你知道如何。 – woter324