Załóżmy, że mam następujący fragment kodu:
$assoc = New-Object psobject -Property @{
Id = 42
Name = "Slim Shady"
Owner = "Eminem"
}
Write-host $assoc.Id + " - " + $assoc.Name + " - " + $assoc.Owner
Spodziewałbym się, że ten fragment pokaże:
42 - Slim Shady - Eminem
Zamiast tego pokazuje:
42 + - + Slim Shady + - + Eminem
Co sprawia, że uważam, że +
operator nie jest odpowiedni do łączenia łańcuchów i zmiennych.
Jak do tego podejść z PowerShell?
Write-host ($assoc.Id.ToString() + " - " + $assoc.Name + " - " + $assoc.Owner)
tutaj $ assoc.Id jestInt32
więc musimy użyć jego reprezentacji ciągu. W przeciwnym razie PS próbuje wykonać dodawanie arytmetyczne zamiast konkatenacji.