PowerShell中的强类型引用?

PowerShell中的强类型引用?,powershell,types,Powershell,Types,我知道我可以使用以下方法为PowerShell中的函数键入参数: Param ( [int]$myIntParam ); 我知道我可以这样通过引用传递: Param ( [ref]$myRefParam ); 是否可以坚持该引用是针对特定类型的?例如,它是否可以是“reference to integer”类型?就像在C中一样,我将“指向整数的指针”改为“int*”。。。PowerShell中有类似的东西吗 我尝试在谷歌上搜索,但找不到任何相关信息。没有语法来指定“类型引用”

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

Param (
    [int]$myIntParam
);
我知道我可以这样通过引用传递:

Param (
    [ref]$myRefParam
);
是否可以坚持该引用是针对特定类型的?例如,它是否可以是“reference to integer”类型?就像在C中一样,我将“指向整数的指针”改为“int*”。。。PowerShell中有类似的东西吗


我尝试在谷歌上搜索,但找不到任何相关信息。

没有语法来指定“类型引用”,因为
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'.