You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:57:05