一個目的是什麼創建對象這樣的區別是:差分使用[Some.Object]來創建的powershell
$form.Size = New-Object [System.Drawing.Size] 250, 250
和這種方式:
$form.Size = New-Object System.Drawing.Size 250, 250
第一個失敗,但第二個沒有。從對象中調用靜態值時僅使用括號嗎?
一個目的是什麼創建對象這樣的區別是:差分使用[Some.Object]來創建的powershell
$form.Size = New-Object [System.Drawing.Size] 250, 250
和這種方式:
$form.Size = New-Object System.Drawing.Size 250, 250
第一個失敗,但第二個沒有。從對象中調用靜態值時僅使用括號嗎?
當您將方括號放在.NET類型名稱周圍時,您將獲得對.NET類型本身的引用。 New-Object
期望您正在實例化的.NET類型的字符串表示,它將映射到-TypeName
參數。
您可以使用方括號來引用.NET類型,例如,如果您正在調用類的靜態方法。
[System.Net.Dns]::GetHostEntry('www.google.com');
對新物體的幫助說:
Synopsis
Creates an instance of a Microsoft .NET Framework or COM object.
Syntax
New-Object [-TypeName] <String> [[-ArgumentList] <Object[]>] [-Property <IDictionary>] [<CommonParameters>]
注意,對於類型名參數是字符串。當你包含方括號時,它正在尋找一個包含方括號的類型名稱。
很好的解釋! –
對於那些不熟悉PowerShell語法的人來說,這是一個很好的問題。 Upvoted。 –