【问题标题】:Difference when using [Some.Object] to create an object in powershellpowershell中使用[Some.Object]创建对象的区别
【发布时间】:2014-01-16 17:26:08
【问题描述】:

这样创建对象有什么区别:

$form.Size = New-Object [System.Drawing.Size] 250, 250

这样:

$form.Size = New-Object System.Drawing.Size 250, 250

第一个失败,但第二个没有。方括号是否仅在从对象调用静态值时使用?

【问题讨论】:

  • 对于不熟悉 PowerShell 语法的人来说是个好问题。赞成。

标签: object powershell syntax


【解决方案1】:

当您在 .NET 类型名称周围加上方括号时,您将获得对 .NET 类型本身的引用。 New-Object 期望您正在实例化的 .NET 类型的字符串表示形式,它被映射到 -TypeName 参数。

您使用方括号来引用 .NET 类型,例如,如果您正在调用类的静态方法。

[System.Net.Dns]::GetHostEntry('www.google.com');

【讨论】:

    【解决方案2】:

    New-Object 的帮助说:

    Synopsis
        Creates an instance of a Microsoft .NET Framework or COM object.
    
    Syntax
        New-Object [-TypeName] <String> [[-ArgumentList] <Object[]>] [-Property <IDictionary>] [<CommonParameters>]
    

    请注意,Typename 的参数是字符串。当您包含方括号时,它会寻找一个字面上包含方括号的类型名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 2021-12-06
      相关资源
      最近更新 更多