我正在创建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 {}
它运行良好,但是看起来很原始,我不知道是否有更好的实践方法,也许将其添加到类中或作为方法使用?
如果有人知道,请与我分享,谢谢
答案 0 :(得分:1)
当前,您正在使用2种不同的对象。 $newKlassTest
类的[SchulKlasse]
和$test
的{{1}}。我建议您创建一个类PSObject
或[Person]
并让[Lehrer]
属于类[Schulklasse ].KlassenLehrer
。类[Lehrer]
应该具有您添加到[Lehrer]
的属性。
但是,您当前的类$test
的构造函数将要求[SchulKlasse]
-Object在[Lehrer]
之前存在。