首页 > 解决方案 > 哈希表成员的静态类型

问题描述

我知道默认情况下 PowerShell 是动态类型的,这对于“快速而肮脏”的单行和短脚本很有意义。但是我已经开始尝试在我的长脚本中按类型声明变量,因为它避免了某些错误。这适用于常规变量,即使像这样初始化为 $null 也是如此[int]$int = $null。但是,我也使用大量哈希表从函数返回多个值,我也想在那里使用静态类型。但是你不能使用像这样的类似方法......

$hash = @{
    [int]int = $null
    [string]string = $null
}

你可以这样投...

$hash = @{
    int = [int]$null
    string = [string]$null
}

但这仍然使散列成员保持动态,因此 $hash.int ='string'是有效的。

我可以切换到使用自定义对象,但我发现它相当难看,v3 类型的加速器无法承受。可悲的是,我也几乎被锁定支持 v2,所以我觉得哈希表仍然是要走的路。

那么,有没有办法在我缺少的哈希表中做到这一点?或者这是自定义对象的原因?

标签: powershellstatic-typing

解决方案


推荐阅读