PowerShell类中如何向ArrayList对象添加元素
PowerShell类中向ArrayList添加元素的实现方案
原代码存在两个核心问题:
- 访问全局ArrayList时没有加
$global:作用域前缀,类内部默认查找当前类作用域下的变量,找不到会触发报错 - 类级别ArrayList的操作未调用
Add()方法,仅引用属性不会触发元素添加操作
1. 使用全局声明的ArrayList
实现要点:类内部访问全局变量必须显式指定$global:作用域修饰符,才能正确读写全局作用域下的ArrayList实例。
# 全局声明ArrayList $logArrayGlobal = [System.Collections.ArrayList]::new() class LogManager { LogManager() { # 显式指定global作用域操作全局ArrayList,加Out-Null屏蔽Add方法返回的索引值 $global:logArrayGlobal.Add("全局测试元素") | Out-Null } } # 实例化测试 [LogManager]::new() # 输出全局ArrayList内容验证 $logArrayGlobal
2. 使用类级别声明的ArrayList
实现要点:类内部访问自身属性必须加$this.前缀,调用属性的Add()方法完成元素添加。
class LogManager { # 类级别声明ArrayList属性 $logArrayClass = [System.Collections.ArrayList]::new() LogManager() { # 通过$this访问类属性,调用Add方法添加元素 $this.logArrayClass.Add("类级别测试元素") | Out-Null } # 封装方法用于输出类内ArrayList内容 [void] GetClassLogs() { Write-Host "类内ArrayList内容:$($this.logArrayClass)" } } # 实例化测试 $logInstance = [LogManager]::new() $logInstance.GetClassLogs() # 直接访问实例属性验证内容 $logInstance.logArrayClass
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

