2

これが機能しないのはなぜですか?

PS deployables:\> $host.ui.rawui.windowsize.width
170
PS deployables:\> $host.ui.rawui.windowsize.width = 100
PS deployables:\> $host.ui.rawui.windowsize.width
170

しかし、これはありますか?

PS deployables:\> $host.ui.rawui.windowsize.width
170
PS deployables:\> $newsize = $host.ui.rawui.windowsize
PS deployables:\> $newsize.width = 100
PS deployables:\> $host.ui.rawui.windowsize = $newsize
PS deployables:\> $host.ui.rawui.windowsize.width
100

PowerShell または .NET プロパティの割り当てを誤解しているかどうかはわかりません。

4

1 に答える 1

2

うーん、PowerShell がこれらの構造体でセッターを定義したなんて信じられません。上記のような混乱を避けるために、.NET の構造体は一般に不変である必要があります。詳細については、このSO の質問を参照してください。構造体は値によって渡されます。WindowSize 構造体を変更すると、そのコピーが変更されます。たとえば、構造体全体を$newsize割り当てると、新しい構造体の値全体が WindowSize プロパティに割り当てられるため、機能します。

于 2012-10-27T02:32:27.187 に答える