PowerShell V4-将哈希表传递给函数



我正在编写一个PowerShell函数,该函数将使用哈希表作为参数之一。

我在做一些不好的事情吗?第二,有更好的方法吗?

代码:

function removeItem
{
    Param(
        [Parameter(Mandatory=$True)]
        [string]$path,
        [string]$writetoText,
        $hashWrite = @{}
    )
}

简短回答:否

我看不出为什么使用[hashtable]或任何其他数据类型作为参数是不好的做法,至少在真空中是这样。如果你给了我们一些你打算用它做什么的想法,那么我们可能会告诉你一个更好的方法来实现你的目标。

示例

如果您的意图是将许多相关参数传递到函数中,但它们仅在存在某些其他参数或具有某些值的情况下适用,那么我认为在PowerShell中简单地使用[hashtable]是不好的做法。

为什么?因为您可以使用参数集和动态参数来实现这一点,而语言将支持它(通过自动生成帮助、制表符完成值等),并处理您必须编写代码的大部分验证。

最新更新