PSScriptAnalyzer
PSScriptAnalyzer copied to clipboard
Rule request: Avoid using the Assignment by Addition Operator (`+=`) to build a string
Summary of the new feature
Strings are immutable. Each addition to the string actually creates a new string big enough to hold the contents of both the left and right operands, then copies the elements of both operands into the new string. For small strings, this overhead may not matter. For large strings, this can affect performance and memory consumption.
This will create more awareness of the possible performance impact of using the Assignment by Addition Operator (+=
), see also:
-
Avoid the increase assignment operator (
+=
) for building strings - PowerShell scripting performance considerations / String addition
Proposed technical implementation details (optional)
See (PowerShell based) prototype AvoidPlusEqualsToBuildStrings
at: https://github.com/iRon7/PSRules
What is the latest version of PSScriptAnalyzer at the point of writing
1.21.0
I've tried this a while ago, see https://github.com/PowerShell/PSScriptAnalyzer/pull/933 I'd say currently not possible because we cannot infer types and there are limitations of PowerShell internal classes that were forked in early days and even if we were to update them (which is very difficult as well because of the way the PowerShell code has moved on), it would likely not solve the problem either... I'd say to close as dupe of https://github.com/PowerShell/PSScriptAnalyzer/issues/806 and https://github.com/PowerShell/PSScriptAnalyzer/issues/904