Я пытаюсь создать объект с помощью цикла foreach в PowerShell. Попытка с использованием цикла while также не удалась. Видимо, методы зацикливания не позволяют мне создавать объекты ...
Без лишних слов ...
У меня есть два скрипта - Class.psm1 и Main.ps1.
Вкл. Класс.psm1
Class Car {
[string]$brand
[string]$model
[string]$color
#Constructor
Car ([string]$brand) {
$this.brand = $brand
switch -wildcard ($this.brand) {
('Toyota') {$this.model = 'ABC'; $this.color = 'red'; break}
('Honda') {$this.model = 'FGH'; $this.color = 'blue'; break}
}
}
}
И на Main.ps1
Using module ".\Class.psm1"
$AllCars = {'Toyota', 'Honda'}
[array]$Objects = @()
foreach ($car in $AllCars) {
$temp = New-Object Car("$car")
$Objects += $temp
}
Вывод из Main.ps1 заключается в том, что $ Objects просто возвращают «Toyota» и «Honda» вместо объектов (и свойств, которые он должен иметь).
Однако, если бы я просто создал объект по отдельности, он будет работать нормально.
Например:
$temp = New-Object Car('Toyota')
$Objects += $temp
$temp = New-Object Car('Honda')
$Objects += $temp
Однако это слишком ручная работа или скорее непрактичная.
Могу ли я знать, в какой области коды пошли не так ...? Как мне создать объекты внутри цикла?