2016-11-13 61 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