如何在PowerShell类中创建访问静态变量并实现实例计数功能
问题根因
- PowerShell 命令参数的默认解析规则是:未被括号包裹的表达式会被视为字面量字符串处理。你在构造函数中写的
write-host [ex1]::count没有加括号,所以程序直接输出了[ex1]::count这个字符串内容,而非静态变量的实际值。 - 实际上你的静态变量
$count已经按照预期完成了自增,只是输出环节不符合预期。
解决方法
只需要修改构造函数中Write-Host语句的写法,给要输出的表达式加括号,强制PowerShell先计算表达式结果再输出即可,修正后的完整代码如下:
class ex1 { static [int]$count = 0 ex1() { [ex1]::count = [ex1]::count + 1 # 给表达式加括号强制计算值 write-host ([ex1]::count) } } $ex1 = [ex1]::new() $ex2 = [ex1]::new() $ex3 = [ex1]::new() # 验证最终统计值,输出为3 write-host "总创建实例数:$([ex1]::count)" exit 1
运行修正后的代码输出结果为:
1 2 3 总创建实例数:3
内容的提问来源于stack exchange,提问作者pico
相关产品推荐
相关产品推荐

