如何在使用全局变量时强制执行Set-StrictMode 2

时间:2018-09-24 11:03:21

标签: powershell

如果我想与classSet-StrictMode -version 2一起使用Powershell 全局变量,我该怎么做?

Set-StrictMode -version 2
class MyClass{
    [string] MyMethod(){
        $x = $ErrorActionPreference
         ...

Powershell抱怨

$x = $ErrorActionPreference
Variable is not assigned in the method.

1 个答案:

答案 0 :(得分:2)

在StrictMode 2中,这种分配被认为是有害的。$ErrorActionPreference没有在类/函数范围内声明。在global scope中可用。

您的示例在严格模式2下有效,如下所示:

Set-StrictMode -Version 2

class MyClass {
    [string] MyMethod(){
        $x = $global:ErrorActionPreference
        return $x
    }
}

[MyClass]::new().MyMethod()