在Powershell类中扩展对象属性

时间:2019-06-19 08:16:44

标签: powershell class

我正在创建PS类,并且想要扩展某个对象的属性,我做到了

Class SchulKlasse 
{
[int]$JahrGang 
[int]$schulerAnzahl
[string]$KlassenLehrer
[string]$schulForm
[string]$Name 
[int]$klassenRaum 
[string]$Gebäude 
[string]$Fächer


Schulklasse ([string]$Name, $Gebäude, $SchulerAnzahl,$Fächer, $JahrGang, $KlassenLehrer, $schulForm, $KlassenRaum)
{
    $this.Name = $Name
    $this.Gebäude = $Gebäude
    $this.schulerAnzahl = $SchulerAnzahl
    $this.Fächer = $Fächer
    $this.JahrGang = $JahrGang
    $this.KlassenLehrer = $KlassenLehrer
    $this.schulForm = $schulForm
    $this.klassenRaum = $KlassenRaum
}


}


$newKlassTest = [SchulKlasse]::new('Erfolg','B20','2015','Mathe,Wirtschaft,Sport','1996','H.Müller','GrundSchule','13')

现在根据用户的选择,我想扩展$ klassenLehrer对象

$newKlassTest
$test = New-Object -TypeName PSObject
$test | Add-Member -MemberType NoteProperty -Name Lehrer -Value $newKlassTest.KlassenLehrer
$test | Add-Member -MemberType NoteProperty -Name Nachname -Value **** 
$test | Add-Member -MemberType NoteProperty -Name Vorname -Value ****
$test | Add-Member -MemberType NoteProperty -Name Kenntnisse -Value "master in it management"
$test | Add-Member -MemberType NoteProperty -Name Faecher -Value "Datenbanken,Vernetzte Systeme"
$test | Add-Member -MemberType NoteProperty -Name Geburtsdatum  -Value 1979
$test | Add-Member -MemberType NoteProperty -Name Verfügbarkeit -Value "Montags bis Donnerstags"

$Anfrage = Read-host "Möchten Sie mehr Informationen über den Klassenlehrer wissen? j,n"
if ($Anfrage -eq 'j')
{
$test
}
else {}

它运行良好,但是看起来很原始,我不知道是否有更好的实践方法,也许将其添加到类中或作为方法使用?

如果有人知道,请与我分享,谢谢

1 个答案:

答案 0 :(得分:1)

当前,您正在使用2种不同的对象。 $newKlassTest类的[SchulKlasse]$test的{​​{1}}。我建议您创建一个类PSObject[Person]并让[Lehrer]属于类[Schulklasse ].KlassenLehrer。类[Lehrer]应该具有您添加到[Lehrer]的属性。
但是,您当前的类$test的构造函数将要求[SchulKlasse]-Object在[Lehrer]之前存在。