Две команды являются тем же самым.
можно использовать синтаксис для объявления нескольких объектов:
int[] arrayOne, arrayTwo; //both arrays
int arrayOne[], intOne; //one array one int
см.: http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html
Вы можете создать функцию, которая принимает блок сценария, вызывает GetNewClosure и возвращает закрытие. Важно, чтобы вы вызывали эту функцию с помощью оператора точки, например:
function =>([scriptblock]$_sb_)
{
$_sb_.GetNewClosure()
}
function A($block)
{
B (. => {Write-Host 2; &$block})
}
function B($block) {Write-Host 1;&$block}
A {Write-Host 3}
Не уверен, что это намного лучше, чем просто вызов GetNewClosure () в блоке сценария. Обратите внимание, что вы можете выбрать другое имя для функции. Я хотел что-то вроде лямбда-выражений C #.
Эти ссылки могут немного помочь, когда они говорят о закрытии в PowerShell 2.0