배열 객체 변수가 [ref] $InsertColHeadName = @()
이고 함수에 param ([ref] $InsertColHeadName)
으로 다른 함수를 호출합니다. 그런 다음 호출 된 함수에서 매개 변수 ([ref] $InsertColHeadName) += expression
에 설정된 내 매개 변수를 참조하려고했습니다. 표현식은 문자열을 반환합니다. 줄에 중단 점을 배치하고 작은 따옴표를 사용하여 문자열을 강제로 시도했습니다 (예 : ([ref] $InsertColHeadName) += 'xyz';
).참조로 전달 된 배열 변수 설정
나는 인터넷 검색을 시도했지만 적절한 해결책을 찾지 못하는 것 같습니다.
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
왜 처음에는'$ arr = @()'대신'[ref] $ arr = @()'을 사용하고 있습니까? –
주 함수에서 사용하기 전에 참조가 필요하지 않았습니다. 주 함수는 특정 논리를 두 번 사용하기 때문에 몇 가지 유효성 검사 로직을 가진 동일합니다. 함수에 푸시하고 함수를 호출하는 것이 더 좋을 것이라고 생각했습니다. 참조하려고하는 변수는 변수가 사용 가능해야하는 다른 함수 호출에서 사용됩니다. –