Я объясню свой вопрос на примере. Пусть в С# следующий код:
void A(Action block)
{
B(() =>
{
Console.WriteLine(2);
block();
});
}
void B(Action block)
{
Console.WriteLine(1);
block();
}
void Main()
{
A(() =>
{
Console.WriteLine(3);
});
}
Вывод этого кода:
1
2
3
Теперь я хочу написать этот код в PowerShell:
function A($block) {
B {
2
. $block
}
}
function B($block) {
1
. $block
}
A {
3
}
Однако этот код вызывает переполнение глубины вызова:
Ошибка script из-за глубины вызова переполнение. Глубина вызова достигла 1001 и максимальный - 1000.
Я обнаружил, что если я изменю имя параметра функции B, он будет работать.
Это функция или ошибка (или и то, и другое)? Как я могу выполнить эту работу в PowerShell без уникальных параметров по функциям?