是否有可能在类中引用另一个属性?例如,类似这样的东西。我已经尝试了几种方法,但现在不确定是否可以这样做...:

class TestClass {

    [string]
    $SQLInstanceName

    [string]
    $Server = "$($env:COMPUTERNAME)\$SQLInstanceName"

    [string]myResult()
    {
        return $this.Server
    }
}

....谢谢

最佳答案

是。这是在您的类定义中实现的:

class TestClass {

    [string]
    $SQLInstanceName

    hidden $_Server = $($this | Add-Member ScriptProperty 'Server' `
        {
            # get
            "$($env:COMPUTERNAME)\$($this.SQLInstanceName)"
        }
    )

    [string]myResult()
    {
        return $this.Server
    }
}

要查看此工作原理,请新建一个实例,然后为SQLInstanceName分配一个值。
$c = [TestClass]::new()
$c.SQLInstanceName = 'MyDB'

然后调用
$c.Server
$c.myResult()

结果是
ComputerName\MyDB
ComputerName\MyDB

关于class - 引用PowerShell类中另一个属性的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43394978/

10-09 09:29