PowerShell 技能连载 - 加速 New-Object Synthesizer
New-Object
创建新的对象实例,在之前的“语音之周”中,您已经见到了如何创建一个语音合成器对象,并且将文本转换为语音:
1 | Add-Type -AssemblyName System.Speech |
创建对象的方法是类似的,所以如果换成一个不同的类,例如 System.Net.NetworkInformation.Ping
,就可以 ping 某个 IP 地址或主机名:
1 | $ping = New-Object -TypeName System.Net.NetworkInformation.Ping |
在 PowerShell 5.0 或以上版本,有另一种方法来代替 New-Object
,而且用起来更快:使用任意类型暴露的 New()
静态方法。您可以像这样重写以上的例子:
1 | Add-Type -AssemblyName System.Speech |
类似地:
1 | $ping = [System.Net.NetworkInformation.Ping]::New() |
或者,可以精简:
1 | [System.Net.NetworkInformation.Ping]::New().Send('powershellmagazine.com', 1000) |
请注意:一旦您使用 New()
来代替 New-Object
,您的代码需要 PowerShell 5.0 以上版本。
PowerShell 技能连载 - 加速 New-Object Synthesizer
http://blog.vichamp.com/2017/02/01/speeding-up-new-object-synthesizer/