OCr*_*m85 4 powershell powershell-5.0
我尝试在类方法中使用预定义的变量,如 $PSVersionTable 或 $PSScriptRoot。他们失败并显示错误消息
方法中未分配变量。
例子:
Class Foo {
[String]$Version
GetVersion() {
If ($PSVersionTable) {
$this.Version = $PSVersionTable.PSVersion
}
}
}
Run Code Online (Sandbox Code Playgroud)
但为什么?
Class Foo {
[String] $Version
GetVersion() {
if ($global:PSVersionTable) {
$this.Version = $global:PSVersionTable.PSVersion
}
}
}
$foo = [Foo]::new()
$foo.GetVersion()
Write-Host $foo.Version
Run Code Online (Sandbox Code Playgroud)
对于“为什么”部分,我想这与范围有关。在您的类中,您必须以某种方式指定您引用全局$PSVersionTable变量,而不是类或脚本范围内的某些内容。
| 归档时间: |
|
| 查看次数: |
2741 次 |
| 最近记录: |