我如何在powershell中声明参数如c#

时间:2016-11-13 05:01:54

标签: c# .net powershell powershell-v4.0

我有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

这不起作用。

2 个答案:

答案 0 :(得分:1)

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)。还要注意,只在[ref]块中声明param类型。更多细节:

stackoverflow

ss64

希望有所帮助

<强>更新

您必须使用ref关键字调用您的测试方法 - &gt;使用[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 

答案 1 :(得分:0)

使用class时使用[ref]

class tst 
{

    static test([ref]$param)
    {
        $param.Value  = "world "

    }
}

$test = "ddd"
$test

[tst]::test([ref]$test)
$test