PowerShell中强类型的引用?

时间:2015-03-06 00:28:17

标签: powershell types

我知道我可以使用以下方法在PowerShell中为函数键入参数:

Param (
    [int]$myIntParam
);

我知道我可以通过这样的参考传递:

Param (
    [ref]$myRefParam
);

是否可以坚持引用特定类型?例如,是否可以将其设置为“引用整数”?就像在C中一样,我想“指向整数”作为“int *”......在PowerShell中有类似的东西吗?

我尝试使用谷歌搜索但未找到任何相关信息。

1 个答案:

答案 0 :(得分:2)

没有语法来指定“引用类型”,因为ref在Powershell中是它自己的类型而不是其他类型的修饰符。但是,您可以使用脚本验证程序来获得相同的结果。

function f {
  param(
    [ValidateScript({$_.Value.GetType() -eq [Int32]})]
    [ref] $i
  )
  $i.value += 1
  "New value is $($i.value)"
}

> $x = 5
> f ([ref]$x)
New value is 6
> $x
6

> $y = 'hello'
> f ([ref]$y)
Exception: Cannot validate argument on parameter 'i'.