我在函数中有一个数组对象变量[ref] $InsertColHeadName = @()
,然后调用另一个函数param ([ref] $InsertColHeadName)
。在被调用的函数中,我尝试引用我在参数([ref] $InsertColHeadName) += expression
中设置的参数。该表达式返回一个字符串。我在该行中放置了一个断点,并尝试强制使用单引号的字符串,例如:([ref] $InsertColHeadName) += 'xyz';
。设置通过引用传递的数组变量
我试着用google搜索,但似乎找不到合适的解决方案。
我收到以下错误:
Method invocation failed because [System.Management.Automation.PSReference`1 [[System.Management.Automation.PSReference`1 [[System.Management.Automation.PSReference`1 [[System.Object[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Management.Automation, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]] does not contain a method named 'op_Addition'. At line:1 char:1 + ([ref] $InsertColHeadName) += 'DepartmentNo'; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound
为什么你首先使用'[ref] $ arr = @()'而不是'$ arr = @()'? –
在我在主函数中使用它之前,它不需要参考。由于主函数使用特定的逻辑几次,它是相同的,有一些验证逻辑,我认为将它推到一个函数并调用函数会更好。我试图引用的变量用于另一个可能需要该变量的函数调用。 –