2016-11-13 55 views
0

我有c#代码,我想在PowerShell中找到此代码的替代。我发现类似[ref]$parameter但它不起作用。 我的代码是:我怎么可以在参数中声明像powershell像c#

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 

这是行不通的。

+0

什么PowerShell代码? – BACON

+0

@BACON我在顶部使用这个命令。 – saftargholi

+0

@Enigmativity这不是重复的 – saftargholi

回答

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)。也请注意只在param块中声明[ref]作为类型。进一步的细节:

stackoverflow

ss64

希望帮助

UPDATE

您已经打电话给你测试方法与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 
+0

谢谢你的回答,但这不是我的答案。我想在课堂上申报参考并使用它或上课。 – saftargholi

+0

对不起,我的理解错误。你必须用** ref **关键字调用你的'test'方法 - >使用'[tst] :: test([ref] $ test)'而不是'[tst] :: test($ test)'' 。 – Moerwald

0

使用[ref]当您使用类:您正在使用不工作

class tst 
{ 

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

    } 
} 

$test = "ddd" 
$test 

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