多次元配列について

InternalHostRawUserInterfaceのCell関係のメソッドはBufferCell[,](BefferCellの二次元配列)を引数にとったり、戻り値にしたりするんですが、PowerShellのみで多次元配列を作る方法がわからないので困っていました。
# この場合は、NewBufferCellArrayで生成できるので実害はないんですが
今日やっとわかったのでメモします。こうです。


PS > $d5 = New-Object 'String[,,,,]' 10, 10, 10, 10, 10; $d2.GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String[,,,,] System.Array
これは五次元ですが、何次元でもいけそうです。こういう感じで書けてもよさそうなものですが、

PS > $d2 = [string[,]]([string[]](, "cute"), [string[]](, "berr")); $d2.GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String[] System.Array
なぜか一次元配列になってしまいます。キャストの次元指定は無視されるようです。ただ、[]のなかに","以外が入っているとエラーになるので、ガン無視しているわけではない気がします。型の記法としては正しいのでエラーは出ないが、意味的には無視される、と言うことでしょうか……。
普段はジャグ配列で事足りるので、二度と使わないと思いますが……。
ちなみに、型指定されたジャグ配列はこういう感じになります。

PS > $j = , [string[]](, "g"); $j.GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String[][] System.Array
ここではキャストしまくってますが、普段はObject[]で何の問題も無い(変数に型がないのでダウンキャストしなくて良い)ので、PowerShellは配列使うのにキャスト使いまくりやで、ということはありません。