前提・実現したいこと
$a = $b
等としたときに コピーされるのか 参照が渡されるのか
簡単に区別したいです...
コピーしたつもりが 参照が渡されていて
大惨事になるところでした...
現在は代入してみて他に影響が出ていないか 毎回実行して
確認しています。
何かいい方法はないでしょうか?
該当のソースコード
powershell
1 # 共通情報の定義 2 $PsCommon = New-Object psobject | select -Property Frame,List 3 $PsCommon.List = New-Object psobject | select -Property Range,Rows,Columns 4 $PsCommon.list.Rows = New-Object psobject | select -Property Count,Interval 5 6 $BkInfo = New-Object psobject | select -Property PartTable,PurchaseOrder 7 8 # コピーしたつもりだった.... 9 $BkInfo.PartTable = $PsCommon 10 $BkInfo.PurchaseOrder = $PsCommon 11 12 Remove-Variable PsCommon 13 14 $BkInfo.PartTable.List.Range = 'M10:CU44' 15 $BkInfo.PartTable.List.Rows.Count = 35 16 $BkInfo.PartTable.List.Rows.Interval = 1 17 18 $BkInfo.PartTable.List.Columns = New-Object psobject | select -Property 頁,CharacterSymbol,No,EquipmentName,Type,Quantity,Maker 19 $Propertys = @($BkInfo.PartTable.List.Columns.psobject.Properties) 20 for ($i = 0; $i -le 6; $i++) 21 { 22 # このステートメントを記述した段階で 問題に気付いた... 23 $Propertys[$i].Value = @(4,7,3,15,18,4,6)[$i] 24 } 25 26 $BkInfo.PartTable.Frame = New-Object psobject | select -Property 担当,製図初年月日,製図年月日,盤名称,管理番号,件名,件名1 27 $Propertys = @($BkInfo.PartTable.Frame.psobject.Properties) 28 for ($i = 0; $i -le 6; $i++) 29 { 30 $Propertys[$i].Value = @('AN49','AW53','BD53','BN47','CJ47','CJ49','CJ52')[$i] 31 } 32 33 #最後に確認してみると巻き込まれてる 34 @($BkInfo.PurchaseOrder.Frame.psobject.Properties)[0] 35# Value : AN49 となっている 元は $null のはず...
試したこと
該当のソースコードに記載のコード
補足情報(FW/ツールのバージョンなど)
Win10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/10 02:43
2018/11/10 02:46
2018/11/10 02:47
2018/11/10 02:54