2014-01-16 67 views
2

一個目的是什麼創建對象這樣的區別是:差分使用[Some.Object]來創建的powershell

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

和這種方式:

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

第一個失敗,但第二個沒有。從對象中調用靜態值時僅使用括號嗎?

+1

對於那些不熟悉PowerShell語法的人來說,這是一個很好的問題。 Upvoted。 –

回答

6

當您將方括號放在.NET類型名稱周圍時,您將獲得對.NET類型本身的引用。 New-Object期望您正在實例化的.NET類型的字符串表示,它將映射到-TypeName參數。

您可以使用方括號來引用.NET類型,例如,如果您正在調用類的靜態方法。

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

對新物體的幫助說:

Synopsis 
    Creates an instance of a Microsoft .NET Framework or COM object. 

Syntax 
    New-Object [-TypeName] <String> [[-ArgumentList] <Object[]>] [-Property <IDictionary>] [<CommonParameters>] 

注意,對於類型名參數是字符串。當你包含方括號時,它正在尋找一個包含方括號的類型名稱。

+0

很好的解釋! –