有没有更简单的方法来访问私有范围变量?

时间:2015-12-30 00:47:48

标签: powershell scope private-members

目前,我使用以下语法在PowerShell函数内显式访问私有范围变量:

function MyPowershellFunction {
    param($param1)
    # ...
    # lot of code here
    # ...

    # access variable x on private scope explicitly
    if ($private:x) {
         # do something
    }
}

我这样做是为了不小心引用父范围中定义的变量。但是这个代码看起来很丑陋。有更简单的方法吗?

2 个答案:

答案 0 :(得分:3)

通过创建变量private,您可以将其可见性限制为当前范围。由于变量是在当前范围内查找的,因此只要您不离开范围,首先$x会在最初声明private之后为您提供私有变量。不必一直使用范围修饰符。

答案 1 :(得分:0)

只需使用Local scope修饰符:

function MyPowershellFunction {
    param($param1)

    # access variable x on private scope explicitly
    if ($local:x) {
         # do something
    }
}

if语句未在父作用域中看到任何$ x。