为什么我不能在类方法中使用预定义变量?

OCram85

我试图在类方法中使用预定义变量,例如$ PSVersionTable或$ PSScriptRoot。他们失败并显示错误消息

方法中未分配变量。

例:

Class Foo {
    [String]$Version

    GetVersion() {
        If ($PSVersionTable) {
            $this.Version = $PSVersionTable.PSVersion
        }
    }
}

但为什么?

大卫·布拉本特
Class Foo {
    [String] $Version

    GetVersion() {
        if ($global:PSVersionTable) {
            $this.Version = $global:PSVersionTable.PSVersion
        }
    }
}

$foo = [Foo]::new()

$foo.GetVersion()

Write-Host $foo.Version

对于“为什么”部分,我想这与范围有关。在您的类中,必须以某种方式指定引用全局$PSVersionTable变量,而不是引用类或脚本作用域中的某些内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能在界面中使用默认方法?

为什么我不能在横梁范围内生成预定义的闭包

为什么我不能在匿名类中使用<Class> .this?

Java:为什么我不能在任何类中使用final来访问局部变量JPanel?

为什么不能在__init__关键字arg中使用类变量?

为什么不能在此if语句中使用我的变量?

为什么我不能在类的不同行中声明和定义成员变量?

为什么我不能在类中使用参数构造函数?

为什么我不能在Laravel中使用关系方法?

为什么我不能在MMT中使用类型参数定义(使用PLF)?

为什么我不能在WHERE语句中使用变量?

当.config定义中包含本地存储时,为什么不能在我的.config中使用localStorage?

为什么我不能在PHP中为类变量定义连接字符串?

为什么我不能在aspx.cs文件中使用c#类?

为什么我们不能在C中使用变量作为e的值

为什么我们不能在扩展类的静态方法中使用此实例?

为什么我不能在子类中使用超类的属性(Objective-C)

为什么我不能在Google搜索页面等某些网站中使用自定义字体

为什么我不能在单独的html和js文件中使用全局变量?

为什么我不能在类/静态方法中使用私有的、内部的、文件私有的方法?

为什么我不能在定义中定义变量?

为什么我不能在 TestNg 类中使用 Page Factory

为什么我不能在任何方法之外修改类成员变量?

为什么我不能在 Python 中使用变量作为参数来调用这个函数?

为什么我不能在我的代码中使用“ balance ”?

为什么我不能在 results.find_all 中使用变量?

为什么我不能在 Selenium 中使用 for 循环来抓取类元素?

为什么我不能在实用程序类中使用 @Value

为什么我不能在 Azure Pipeline YAML 配置文件中使用变量来定义环境属性?