Расширение свойств объекта в классе powershell - PullRequest
0 голосов
/ 19 июня 2019

Я создаю класс 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 Ответ

1 голос
/ 19 июня 2019

В настоящее время вы используете 2 различных вида объектов.$newKlassTest класса [SchulKlasse] и $test, что является PSObject.Я бы предложил вам создать класс [Person] или [Lehrer], и пусть [Schulklasse ].KlassenLehrer будет класса [Lehrer].Класс [Lehrer] должен иметь свойства, которые вы добавили к $test.
Однако ваш текущий конструктор класса [SchulKlasse] потребует, чтобы [Lehrer] -объект существовал до [SchulKlasse].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...