【问题标题】:Using Classes within an class在类中使用类
【发布时间】:2022-10-05 20:11:49
【问题描述】:

将其他类与 Powershell 中的类一起使用

我有一个关于在 powershell 中使用类的问题,如何在另一个类中使用一个类?例如,我有类 \'SomeClass\',我想在下面示例类的另一个类中声明它。

伪代码:

class SomeClass {
    [string] $Status
    [string] $Reason
}

class SomeMasterClass {
    [string] $ServerName
    [string] $FileName
    [SomeClass] $TheClass   # is this correct?
}

我很好奇这是正确的方法还是有更好的方法?

  • 但是你到底想知道什么?您已经在使用您的 someClass 作为您的 masterClass 的属性。你能提供更多细节吗?
  • 您的someClass 确实存在语法错误,但除了这些错误之外,您正在做的事情还是可以的。但不清楚你想知道什么?
  • 我想这就是我想要弄清楚的,我只是想将 Add-Item .Net 转换为纯 Powershell 代码,而不是使用 Add-Type。我也没有看到我可以做命名空间,所以我认为这会使上面的代码不正确。附言。修复了代码中的小代码问题。
  • [SomeClass] $TheClass 完全有效并且可以使用
  • @MikeQ 最好你会更新你的帖子您想要回答的实际问题.如果你已经意识到你实际上并没有问题,那么删除你的帖子:)

标签: powershell


【解决方案1】:

在这里,您有一个简化的简单示例,说明如何将一个类作为另一个类的属性,实际上您已经在做它只需要向它添加更多内容。

  • 定义
class SomeOtherClass {
    [string] $Status
    [string] $Reason

    SomeOtherClass () { }
    SomeOtherClass ([string] $Status, [string] $Reason) {
        $this.Status = $Status
        $this.Reason = $Reason
    }
}

class SomeClass {
    [string] $Server
    [string] $File
    [SomeOtherClass] $OtherClass

    SomeMasterClass () { }
    SomeMasterClass ([string] $Server, [string] $File, [SomeOtherClass] $Class) {
        $this.Server     = $Server
        $this.File       = $File
        $this.OtherClass = $Class
    }
}
  • 实例化
$testing = [SomeClass]@{
    Server = 'Server01'
    File   = 'SomeFile'
    OtherClass = [SomeOtherClass]@{
        Status = 'OK!'
        Reason = 'Idk'
    }
}
  • 检查它的属性
PS ..\> $testing

Server   File     OtherClass
------   ----     ----------
Server01 SomeFile SomeOtherClass

PS ..\> $testing.OtherClass

Status Reason
------ ------
OK!    Idk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 2013-04-13
    • 2012-06-27
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多