Powershell:调用.NET函数总是需要括号吗



我知道PowerShell函数调用不需要像C#这样的特定括号,但当我尝试调用.NET类函数时,似乎总是需要括号,比如:

[Int32]::Parse("12")

这是语法规则吗?

通常引用.NET类型的方式是将类型名放在方括号中,例如'' -is [string]。尽管'' -is 'string'也能工作,但我发现在使用方括号时,更容易判断是否引用了.NET类型。

引用静态类型成员的方式是在类型说明符上使用::,如在[System.Int32]::Parse("12")中一样。请注意,如果PowerShell找不到您指定的类型名,它将在System.前面加上您的类型名。这是一条很好的捷径。也有以相同方式出现的类型加速器,例如[int]::Parse("12")

是的,这是一条规则。更具体地说,当您在对象上调用方法(而不是cmdlet或独立函数(时,您总是使用您所称的大括号(),并用逗号,:分隔参数

# A cmdlet: no use of (), parameter names and values separated by spaces
$obj = New-Object -TypeName PSObject -ArgumentList @{Name='hello'}
# A method: () are used even with no arguments
$obj.GetType()

请注意,在英语中,这些更常见地被称为括号,大括号通常指花括号{}

相关内容

  • 没有找到相关文章

最新更新