如何像c#一样在powershell中声明out in参数

本文关键字:powershell 声明 out 参数 in 一样 何像 | 更新日期: 2023-09-27 18:17:44

我有c#代码,我想在PowerShell中找到这个代码的替代方案。我发现了类似[ref]$parameter的东西,但它不起作用。我的代码是:

private static bool testfunction(string param1, out string param 2)
{
    param1 = "";
    param2 += "Hello";
    return true;
}

请给我PowerShell中的替代代码。

我试试这个:

class tst 
{
    static test([ref]$param)
    {
        $param.Value  = "world "
    }
}
$test = "ddd"
$test
[tst]::test($test)
$test

如何像c#一样在powershell中声明out in参数

function testfunction {
   param (
       [string]
       $param1,
       [ref]
       $param2
   )
   $param2.value= "World"
   return $true
}
PS C:'> $hello = "Hello"
PS C:'> testfunction "someString" ([ref]$hello)
True
PS C:'> $hello
World
Powershell支持ref参数。一定要调用括号中的ref形参(例如([ref] $parameter)。还要注意只在param块中将[ref]声明为类型。进一步的细节:

stackoverflow

ss64

希望对你有帮助

你必须调用你的测试方法与ref关键字->使用[tst]::test([ref]$test)而不是' [tst]::test($test)

PS C:'> $test = "ddd"
PS C:'> $test
ddd
PS C:'> [tst]::test([ref]$test)
PS C:'> $test
world 

使用[ref]

class tst 
{
    static test([ref]$param)
    {
        $param.Value  = "world "
    }
}
$test = "ddd"
$test
[tst]::test([ref]$test)
$test