您好 Powershell 专家,
我想编写一个以 System.Text.RegularExpressions.Regex 作为参数的 Powershell 函数。我的函数头是这样的:
function Foo {
Param([System.Text.RegularExpressions.Regex] $myRegex)
# function body
}
我试着这样打电话Foo
:
$MY_REGEX = new-object System.Text.RegularExpressions.Regex('<regex_body>')
Foo($MY_REGEX)
我收到一条错误消息Cannot convert the "System.Object[]" value of type
"System.Object[]" to type "System.Text.RegularExpressions.Regex".
我想知道为什么会这样,因为我明确定义了带有System.Text.RegularExpressions.Regex
类型的正则表达式。所以我对我的对象做了 .GetType() ,我得到了:
BaseType : System.Object
UnderlyingSystemType : System.Text.RegularExpressions.Regex
FullName : System.Text.RegularExpressions.Regex
所以现在我很困惑为什么当底层类型匹配时它会抱怨强制转换......
有人可以指出我做错了什么吗?