加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

数组 – 从Powershell调用具有数组参数的构造方法

发布时间:2020-12-15 00:58:28 所属栏目:Java 来源:网络整理
导读:我是一个初学者,并且知道C#适中.最近我在写这个power shell脚本,想要创建一个Hashset.所以我写了($azAz是一个数组) [System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collections.Generic.HashSet[string]($azAZ) 并按下.我收到了
我是一个初学者,并且知道C#适中.最近我在写这个power shell脚本,想要创建一个Hashset.所以我写了($azAz是一个数组)
[System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collections.Generic.HashSet[string]($azAZ)

并按下.我收到了这个消息:

New-Object : Cannot find an overload for "HashSet`1" and the argument count: "52".
At filename.ps1:10 char:55
+ [System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collecti ...
+                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-Object],MethodException
    + FullyQualifiedErrorId :         ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

然后,我使用数组参数在PowerShell中使用googled构造函数,并将代码更改为:

[System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collections.Generic.HashSet[string](,$azAZ)

不知怎的,我现在得到这个消息:

New-Object : Cannot find an overload for "HashSet`1" and the argument count: "1".
At C:UsersyoungvoidDesktoptest5.ps1:10 char:55
+ [System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collecti ...
+                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-Object],MethodException
    + FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

找不到HashSet和参数count 1的重载?你在跟我开玩笑吗?谢谢.

解决方法

这应该工作:
[System.Collections.Generic.HashSet[string]]$allset = $azAZ

更新:

要在构造函数中使用数组,数组必须是强类型的.这是一个例子:

[string[]]$a = 'one','two','three'
$b = 'one','three'

# This works
$hashA = New-Object System.Collections.Generic.HashSet[string] (,$a)
$hashA
# This also works
$hashB = New-Object System.Collections.Generic.HashSet[string] (,[string[]]$b)
$hashB
# This doesn't work
$hashB = New-Object System.Collections.Generic.HashSet[string] (,$b)
$hashB

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读