如果我使用a创建一个对象,pstypename
那么我可以将函数的参数强制为该类型,如下所示:
function New-NugetDependency{
Param(
[string]$Id,
[string]$Version
)
[PSCustomObject]@{
PSTypeName = "NuGetDependency"
ID = $ID
Version = $Version
}
}
Run Code Online (Sandbox Code Playgroud)
和
function Show-NugGetDependency{
Param(
[PSTypeName("NuGetDependency")]$Dependency
)
Write-Host ("Dependency is " + $Dependency.id + " - " + $Dependency.Version)
}
Run Code Online (Sandbox Code Playgroud)
然而!似乎没有任何方式可以说这$Dependency
是一个数组NuGetDependency
.因此,如果我希望函数接受多个依赖项,那么我就会陷入困境.
我错过了什么?
到了那里,我想.
用这个替换第二个函数:
function Show-NugGetDependency{
Param(
[PSTypeName("NuGetDependency")][object[]]$Dependency
)
foreach($DependencyItem in $Dependency){
Write-Host ("Dependency is " + $DependencyItem.id + " - " + $DependencyItem.Version)
}
}
Run Code Online (Sandbox Code Playgroud)
并且将允许一个仅由NuGetDependency类型组成的数组.它不允许包含一些NuGetDependency类型和一些其他类型的数组.这正是我想要的.
归档时间: |
|
查看次数: |
280 次 |
最近记录: |