1

私はPowerShellで次のようなものを持っています

function x { 
    $result = New-Object 'System.Object[,,]' 1,1,1 
    'Type in function is: ' + $result.getType()
    $result[0,0,0] = 'dummy-value'
    return $result    
}

$result = x
$result.GetType()

メソッド内では結果の型が Object[,,] なのに、外ではいきなり Object[] になるのが変です。基本的に、使用している .Net ライブラリには Object[,,] 型の引数がいくつか必要です。

ヒントはありますか?

4

1 に答える 1

3

何が起こったのかを理解するには、次のように入力してみてください。

PS C:\temp> $result[0]
Type in function is: System.Object[,,]
PS C:\temp> $result[1]
dummy-value

説明は、関数が配列に入れられて出力されるすべてのものです。

あなたが望むことをするためにあなたはこれを書かなければなりません($ resultの前に、を忘れないでください):

function x { 
    $result = New-Object 'System.Object[,,]' 1,1,1 
    $result[0,0,0] = 'dummy-value'
    return ,$result    
}

それから :

PS C:\temp> $a = x
PS C:\temp> $a.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Object[,,]                               System.Array
于 2012-11-22T19:43:20.870 に答える